这段代码存在一些问题。首先,在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 小助理,如未能正确解答您的问题,请继续追问。 |