c - char 类型数组使用什么操作数?

标签 c

我遇到了一个愚蠢的问题,但我可以解决它。 有一个简单的 C 代码(只想查找字符串 str1 是否以 str2 开头):

int main()
{
    int i, j; 
    char sir1[150], sir2[150], sir3[150];
    printf("insert the first string (sir1) and then hit ENTER \n");
    gets(sir1);
    printf("insert the second string (sir1) and then hit ENTER \n");
    gets(sir2);
    printf("\n");
    int len_sir2=strlen(sir2);
    for (i=0;i<len_sir2;i++)
    {
        sir3[i]=sir1[i];
    }

    for (j=0;j<len_sir2;j++)
    {
        if (sir3[i]!=sir2[i]){printf("String 1 does not start with String 2\n");break;return 0;}
    }
    printf("Sir1 starts with Sir2 \n");
    getch();    
}

我的问题是,对于示例“bananna”和“ana”,代码似乎对 Sir2[0] 和 Sir3[0] 具有相同的值,即使在快速观察中显示的值是 98'b'和97'a'。我做错了什么? 非常感谢,

最佳答案

一个错误是您循环了 j,但在循环内使用了 i

for (j=0;j<len_sir2;j++)
    {
        if (sir3[i]!=sir2[i]){printf("String 1 does not start with String 2\n");break;return 0;}
    }

关于c - char 类型数组使用什么操作数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29816148/

相关文章:

c - 解释 C 中的变量声明

C、传递二维数组

c++ - 如何在OpenCV中单击鼠标以在图像上绘制矩形?

c - 相同类型如何无法匹配

c - 堆对齐内存上的 mprotect 神秘地工作

c - 当 pthread_join 被注释时会发生什么?

计算函数sin()

c - 在不同情况下使用 unsigned int?

python - 如何将下面的代码转换为python代码,它是为了校验和。请有人能给我一些指导来学习一些东西来实现这一目标

在c中计算数组中的相对位置