读书人

关于字符串的删除,该怎么处理

发布时间: 2012-06-18 13:23:36 作者: rapoo

关于字符串的删除
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char str[20];
int i,j,n;
cout<<"输入一组字符串:";
cin>>str;
cout<<"输入要删除的字母n:";
cin>>n;
j=strlen(str);
for(i=0;i<j;i++)
{

if(str[i]=='n')
for(i=i;i<j;i++)
str[i]=str[i+1];
}
str[i]='\0';
cout<<str<<endl;
return 0;
}
觉得我的思路没错啊。。。。。为什么就是实现并不了涅????????输出的还是原来的字符串。。。。。。

[解决办法]
小改动。

C/C++ code
#include<iostream>#include<cstring>using namespace std;int main(){    char str[20];    int i,j;    char n;    cout<<"输入一组字符串:";    cin>>str;    cout<<"输入要删除的字母n:";    cin>>n;    j=strlen(str);    for(i=0; i<j; i++)    {        if(str[i]==n)            for(i=i; i<j; i++)                str[i]=str[i+1];    }    //str[i]='\0'; 此行没必要,因为在输入字符串时尾部已经有了。    cout<<str<<endl;    return 0;}
[解决办法]
如果把所有的指定字符删除还得这样改:
C/C++ code
#include<iostream>#include<cstring>using namespace std;int main(){    char str[20];    int i,j,k;    char n;    cout<<"输入一组字符串:";    cin>>str;    cout<<"输入要删除的字母n:";    cin>>n;    j=strlen(str);    for(i=0; i<j; )    {        if(str[i]==n){            for(k=i; k<j; k++)                str[k]=str[k+1];                continue;                }        i++;    }    //str[i]='\0'; 此行没必要,因为在输入字符串时尾部已经有了。    cout<<str<<endl;    return 0;} 

读书人网 >C++

热点推荐