对于字符数组char var[]而言,赋单个字符的时候,一定要加上'\0',否则会 产生赋值错误。
strlen不将'\0'计入长度之内;
#include <iostream> #include<string.h> using namespace std; //为什么在这里我没有对b重复赋值 int main() { char a[]={"hello"}; char b[]={'h','e','l','l','o','\0'}; char c[]={'h','e','l','l','o'}; //puts(b); //puts(c); for(int i=0;i<strlen(b);i++) cout<<b[i]<<" "; cout<<endl; //cout<<"a is:"<<a<<'\t'<<"strlen a is: "<<strlen(a)<<endl; cout<<"b is:"<<b<<'\t'<<"strlen b is: "<<strlen(b)<<endl; cout<<"b len is:"<<sizeof(b)/sizeof(char)<<endl; cout<<c<<endl; return 0; }输出结果:
h e l l o b is:hello strlen b is: 5 b len is:6 hellohello