#include
#include
#include
using namespace std;
int main()
{
string s, result_str;
bool has_alpha=false;
char ch,cc;
cout<<"Enter a string:"<
getline(cin,s);
for(string::size_type index=0;index!=s.size();++index)
{
ch=s[index];
cc=s[1]; //指定的已知字母
if(ch==cc)
has_alpha=true;
else
result_str+=ch;
}
if(has_alpha)
cout<<"Result:"<
{
cout<<"No the alpha character in the string?!"<
}
return 0;
}
把这个字符用他后面的字符覆盖不就得了
程序我运行过,可以运行但是有一些瑕疵,你的要求是“将某一指定字符从一个已知的字符串中删除”,但这个程序的缺点在于它会删除全部的指定字符,如你输入“good”,然后再输入“o”,结果是“gd”,这显然与删除一个指定字符的要求不符合。
下面是对你问题的解答:
1.字符串的删除函数中,if语句之后*q++=*p,这里的*p是指针里的第二个值吗?
答:*p是一个字符,p才是指针。
2.for语句第一条件为空具体是怎么执行下面的内容的?
答:for语句第一条件只在循环开始的时候用一次,用与给赋初值,可以省略第一条件。然后到第二条件进行判断,若第二条件为真时执行循环体里的语句,然后执行第三条件,再判断第二条件是否为真,若真继续执行循环体....以此类推
3. 还有就是主函数里的输出语句cout<<"The new string is: "<
希望能对你的问题有帮助