#include <iostream> using namespace std; class String { char *str; int len; public: String(char *s=NULL) { if(s) { str=new char[strlen(s)+10]; strcpy(str,s); } else str=NULL; } String(String &s) { if(s.str) { str=new char[strlen(s.str)+10]; strcpy(str,s.str); } else str=NULL; } void set(char *s) { str=s; } void show() { cout<<str<<endl; } int getLen() { return strlen(str); } void delChar(char a) { int i,j; for(i=0;i<strlen(str);i++) if(str[i]==a) { for(j=i;j<strlen(str);j++) str[j]=str[j+1]; i=i-1; } cout<<str; } ~String() { if(str) delete []str; } }; int main() { String s1,s2,s3(s1); s1.set("abccc"); s2.set("abbb"); s1.delChar('c'); s1.show(); s2.delChar('b'); s2.show(); return 0; }这个程序为什么没有结果
时间: 2023-12-02 08:02:51 浏览: 47
使用include <iostream>时一定要加using namespace std
在这个程序中,调用 `delChar` 方法删除指定字符后,虽然在方法内部使用 `cout` 输出了结果,但程序并没有在 `main` 函数中输出任何结果。
你需要在 `main` 函数中调用 `show` 方法来输出删除指定字符后的字符串结果。例如:
```c++
int main() {
String s1,s2,s3(s1);
s1.set("abccc");
s2.set("abbb");
s1.delChar('c');
s1.show(); // 输出 "abb"
s2.delChar('b');
s2.show(); // 输出 "a"
return 0;
}
```
这样就能看到正确的输出结果了。
阅读全文