c - 值变成空字符串

标签 c arrays pointers

当我用 python 导师可视化我的代码时,数组的值变成空字符串,当 if 条件进动时就会发生这种情况,我不明白为什么会发生这种情况。有人可以解释为什么会发生这种情况并提供解决方案吗?

  #include <stdio.h>

int countWords(char *src, char toFind)
{
    int numWords;
    int i;
    int d;

    numWords = 0;
    i = 0;
    d = 0;

    while (*src)
    {

      if (*src =! (toFind)) //it happens here*?*
        numwords++;

      src++;
    }  

}

int main()
{
    char arr[] = "abc,ffg,ijk";
    char c = ',';
    int res = 0;
    char *ptr;

    ptr = arr;

    res = countWords(ptr,c);

    printf("%d", res);
    return 0;
}

最佳答案

你犯了一个拼写错误,如果你想进行比较,你应该使用 != 而不是 =! 这是两个运算符,告诉编译器评估变量并将相反的结果赋给*src

此外,假设您想要字数而不是字符数,您可能使用了错误的运算符。使用 == 可以解决这个问题。

关于c - 值变成空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58356855/

相关文章:

pointers - 尽管映射始终是引用类型,但如果它们是从非指针接收器返回的呢?

c - 如何使用指针交换数组

c - 如何限制只能输入一个字母?

c - 无法在 OpenCV 中检测网络摄像头

CMake 抑制项目的语言支持(与第 3 方库链接)

java - 如何将 ArrayList 转换为具有有序元素的字符串数组?

c - 赋值从指针生成整数而不进行强制转换 [-Wint-conversion

c++ - 链表搜索函数修改列表

将长浮点值截取至小数点后 2 位并复制到字符数组

arrays - 在排序数组中找到所有对 (x, y) 使得 x + y < z