- 字符串中我们怎么删除一个字符
- 第一种办法,找到该字符,后面的字符挨个挨个往前移动。直接上代码:
- #include
using namespace std;
void deletestr_T(char *str, char ch)
{
int len = strlen(str);
for (int i = 0; i < len; i++)
{
if (str[i] == ch)
{
for (int j = i + 1; j < len; j++)
{
str[j - 1] = str[j];
}
}
}
}
int main()
{
char str1[20] = “abcdefgh”;
deletestr_T(str1,‘c’);
cout << str1 << endl;
system(“pause”);
return 0;
} - 实际上字符创的每一位字符的表现形式就是一个指针。和链表很想,p代表当前字符,(p++)就代表下一个字符了。我们定义两个指针pslow和pfast。当我们要删除某个字符的字符的时候,pfast直接跳过即可(pfast++),遇到不删除的字符,再把pfast的值付给pslow。这样句相当于把字符删除了。
- #include
using namespace std;
void deletestr(char *str,char ch)
{
char *pfast= str;
char *pslow= str;
while (’\0’ != *pstart)
{
if (*pfast!= ch)
{
*pslow= *pfast;
pslow++;
}
pfast++;
}
*pflow = ‘\0’;
}
int main()
{
char str1[20] = “abcdefgh”;
deletestr(str1,‘c’);
cout << str1 << endl;
system(“pause”);
return 0;
}
第二种办法很是巧妙。要多多思考和练习啊