猿问

遇到一个C++的问题,和字符串、指针有关,请求高手解答

#include <iostream>
#include <stdlib.h>
using namespace std;
 
int main()
{
    char f[] = "ac";
    char s[] = "abcxabczabc";
    void squeeze(char*, char*);
    squeeze(s, f);
    cout << s << endl;
 
    system("pause");
    return 0;
}
 
void squeeze(char *s,char *f)
{
    char *tails, *pf, *s1, *s2;
    for (tails = s; tails != '\0'; tails++);
    for (pf = f; pf != '\0'; pf++)
    {
        for (s1 = s; s1 <= tails - 1; s1++)
        if (pf == s1)
        {
            for (s2 = s1; s2 <= tails - 1; s2++)
                *s2 = *(s2 + 1);
            tails--;
        }
    }
}

就是这么个样子。

天狗
浏览 1393回答 2
2回答

海草

调试一下就很容易发现问题的

onemoo

第20行,for的判断表达式部分中,tails是个指针,但你却将tails直接与'\0'这个字符串字面量相比较
随时随地看视频慕课网APP
我要回答