|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
从键盘输入一个字符串str和一个字符ch,从字符串中删除此字符,输出新的字符串。
- #include <iostream>
- using namespace std;
- void main()
- {
- char str[100],xin[100],ch,*p1=str;
- cout<<"请输入一组字符串:";
- cin>>str;
- cout<<"请输入一个字符:";
- cin>>ch;
- int i=0;
- for (p1=str;*p1!='\0';p1++)
- {
- if (*p1!=ch)
- {
- xin[i]=*p1;
- i++;
- }
- }
- cout<<"新字符串为"<<xin<<endl;
- system("pause");
- }
复制代码
这段代码存在一些问题。首先,在C++中,main函数的返回值应该是int而不是void。其次,在定义字符串变量str时,应该使用字符数组而不是字符变量。另外,使用指针变量p1来遍历字符串是可行的,但在删除字符时需要注意操作的正确性。
下面是代码的修正版本:
- #include <iostream>
- using namespace std;
- int main()
- {
- char str[100], ch, xin;
- cout << "请输入一个字符串:";
- cin.getline(str, 100);
- cout << "请输入要删除的字符:";
- cin >> ch;
-
- int i = 0, j = 0;
- while (str[i] != '\0')
- {
- if (str[i] != ch)
- {
- str[j] = str[i];
- j++;
- }
- i++;
- }
- str[j] = '\0'; // 添加字符串结尾符号
-
- cout << "删除后的字符串为:" << str << endl;
- return 0;
- }
复制代码
这里使用字符数组来存储字符串,并且使用两个索引变量i和j来遍历字符串。当遇到不需要删除的字符时,将其复制到新的位置,并将j自增。最后,修改字符串的结尾符号为'\0',确保输出的字符串正确。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
|