C++ char数组与空串
2014-04-08 11:19
148 查看
#include<iostream>
using namespace std;
int main()
{
char a[10] = "";
char b[10] = {'\0'};
char c[10];
c[0] = '\0';
cout<<"a[10]:"<<endl;
for(int i = 0;i<8;i++)
cout<<a[i]<<" ";
cout<<endl<<"b[10]:"<<endl;
for(int j = 0;j<8;j++)
cout<<b[j]<<" ";
cout<<endl<<"c[10]:"<<endl;
for(int k = 0;k<8;k++)
cout<<c[k]<<" ";
cout<<endl;
if(strcmp(a,c)==0)
printf("OK");
return 0;
}
以上可以看出:c数组与a数组("")比较结果是相等,但是内容缺少不同的。
在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串。总结起来有以下三种方式:
(1) char str[10]="";
(2) char str[10]={'\0'};
(3) char str[10]; str[0]='\0';
第(1)(2)种方式是将str数组的所有元素都初始化为'\0',而第(3)种方式是只将str数组的第一个元素初始化为'\0'。
参考:http://blog.sina.com.cn/s/blog_59d470310100gov8.html
using namespace std;
int main()
{
char a[10] = "";
char b[10] = {'\0'};
char c[10];
c[0] = '\0';
cout<<"a[10]:"<<endl;
for(int i = 0;i<8;i++)
cout<<a[i]<<" ";
cout<<endl<<"b[10]:"<<endl;
for(int j = 0;j<8;j++)
cout<<b[j]<<" ";
cout<<endl<<"c[10]:"<<endl;
for(int k = 0;k<8;k++)
cout<<c[k]<<" ";
cout<<endl;
if(strcmp(a,c)==0)
printf("OK");
return 0;
}
以上可以看出:c数组与a数组("")比较结果是相等,但是内容缺少不同的。
在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串。总结起来有以下三种方式:
(1) char str[10]="";
(2) char str[10]={'\0'};
(3) char str[10]; str[0]='\0';
第(1)(2)种方式是将str数组的所有元素都初始化为'\0',而第(3)种方式是只将str数组的第一个元素初始化为'\0'。
参考:http://blog.sina.com.cn/s/blog_59d470310100gov8.html
相关文章推荐
- C++ 将字符串值赋给CHAR数组
- C++的string与char 数组的区别
- C/C++关于字符串string、char*字符串数组与其他类型转换
- C++将8字节的long long转换成char数组
- C++之string的底层真的是用char数组来实现的么?
- 在C++中如何将ActiveX控件所使用的BSTR数据转换成CHAR字符数组?
- 十六进制字符串、char数组的转换: c c++ java
- C++关于char*型数组的new与delete
- c++创建一个char数组
- 数据手动输入c++ 结构体练习 结构体重的char数组指针
- c++ char数组和char*
- 【转】C++ char数组转化为string
- C++ 中TCHAR字符串数组转化为Char类型数组
- char*数组(c类型字符串)和c++中的string的转换、字符串比较、char*数组等问题
- C/C++ char或byte数组转化为int或int数组
- 十六进制字符串 char 数组 转换 c/c++
- 十六进制字符串 char 数组 转换 c/c++/java
- C++及C中的 string char指针及char数组
- 十六进制字符串 char 数组 转换 c/c++/java
- C/C++ byte或者char数组转int值