编写一个程序,实现将用户输入的一个字符串中的所有字符‘c’删除,并输出结果。

#include <iostream>
using namespace std;
#define MAX 1000
int main()
{
char source[MAX];
char temp[MAX];
int i, j, len;
cout<<"请输入一个字符串:";
cin>>source;

len = strlen(source);
for (i = 0, j = 0; i<len; i++)
{
if (source[i] == 'c' || source[i] == 'C')
continue;
temp[j++] = source[i];
}
temp[j] = '\0';

strcpy_s(source, temp);

cout<<"删除 c 字符后的字符串:"<<source<<endl;

return 0;
}

temp[j]='\0'有什么意义

'\0'是字符串结束符号
C中 字符串就是字符数组。
比如你想定义一个3个字符的字符串,char a[]="abc" 实际内存中占用空间是4个字符,最后一个字符就是'\0'
所以当你指定数组大小时,应给结束符号留1位,比如我想放3个字符,就应该定义char a[4]
至于'\0'作用,就是用于遍历数组时判断字符串结束位置的。
常用的字符串函数也是用这个判断的,比如strlen()函数计算字符串长度就是依据结束符号算的。 如果我把字符串“abc”第2个元素赋值成‘\0’,那么strlen计算长度就只有1
所以上面程序删除字符改变了字符串长度后,在指定的位置放了结束符号
温馨提示:答案为网友推荐,仅供参考
相似回答