关于字符串
1、‘\0’的问题 举例
char str[10]; strcpy(str,"0123456789");先声明了一个char类型的数组,然后将10个数字复制到数组中,但是忘记了‘\0’,所以造成字符串越界,所以要复制这十个数,至少要11字节。
2.关于字符数组与字符指针 执行以下代码:
int main() { char str1[]="helloworld"; char str2[]="helloworld"; char *str3="helloworld"; char *str4="helloworld"; if(str1==str2) cout<<"1,2 same"<<endl; else cout<<"1 2 bu same"<<endl; if(str3==str4) cout<<"3,4 same"<<endl; else cout<<"3 4 bu same"<<endl; return 0; }str1和str2虽然存储的内容相同,但str1 和str2分别为两个不同的字符数组,所以初始地址不同,所以输出1 2 bu same str3和str4为两个指针,指向helloworld的地址,所以str3和str4相同,所以输出3,4 same
3.面试题 实现一个函数,把字符串中的空格都替换成“%20”。
void replacerank(string str) { string res; for (int i=0;i<str.size();++i) { if(str[i]==' ') { res+="%20"; } else { res.push_back(str[i]); } } }