字符串中如何删除一个字符

  1. 字符串中我们怎么删除一个字符
  2. 第一种办法,找到该字符,后面的字符挨个挨个往前移动。直接上代码:
  3. #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;
    }
  4. 实际上字符创的每一位字符的表现形式就是一个指针。和链表很想,p代表当前字符,(p++)就代表下一个字符了。我们定义两个指针pslow和pfast。当我们要删除某个字符的字符的时候,pfast直接跳过即可(pfast++),遇到不删除的字符,再把pfast的值付给pslow。这样句相当于把字符删除了。
  5. #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;
    }
    第二种办法很是巧妙。要多多思考和练习啊
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值