C语言:使用指针实现字符串比较函数,strcmp,为什么输出乱码?

发布于 科技 2024-07-31
4个回答
  1. 匿名用户2024-01-31

    printf("%d",&i);它应该改为 printf("%d",i);

    这是变量 i 的地址。 删除地址字符是 i 的值。

    希望能有所帮助。

  2. 匿名用户2024-01-30

    修改如下**:

    #include

    int strcmp(char *,char *)int main()

    char a[80],b[80];

    int i =0;

    printf("请输入任意两个字符串");

    scanf("%s,%s",a,b);

    i=strcmp(a,b);

    printf("%d",i);

    system("pause");

    int strcmp(char *str1,char *str2)int i;

    for (i=0; *str1+i)!='\0'&&*str2+i)!='\0';i++)

    if(*(str1+i)>*str2+i))return 1;

    else if(*(str1+i)<*str2+i))return -1;

    elsecontinue;

    if (*str1+i)=='\0'&&*str2+i)=='\0')

    return 0;

    else if(*(str1+i)!='\0'&&*str2+i)=='\0')

    return 1;

    elsereturn -1;

  3. 匿名用户2024-01-29

    i=strcmp(&a,&b);

    相反。 i=strcmp(a,b);

    printf("%d",&i);

    相反。 printf("%d",i);

    房东对这个地址还是有点含糊不清。

    我不明白。

    让我们一起进步!

  4. 匿名用户2024-01-28

    strcmp 函数用于两个字符串。

    具体用法如下:

    1. strcmp 函数接受两个字符串参数,并根据比较结果返回一个 int 类型的值。

    2. 如果返回结果的值小于 0,则表示 str1 字符串小于 ASCII 码上的 str2 字符串。

    3. 如果返回结果,则返回值。

    如果大于 0,则 str2 字符串小于 str1 字符串。

    4.只有当返回值为0时,两个字符串才相同。

相关回答
4个回答2024-07-31

您可以尝试输出,scanf 函数是从缓冲区读取的数据,第二个字符串的数据是空格或换行符制表符。 您可以单独读取它们,但在两者之间添加 fflush(stdin); 清除缓冲区。

20个回答2024-07-31

这个问题实际上是由 char 指针的特殊性和 cout 函数的重载函数引起的 >>>More

11个回答2024-07-31

我刚刚做了一个压缩程序,对不起,现在可以解压了。 >>>More

10个回答2024-07-31

这个错误令人震惊。

至少,它应该是一个数组。 >>>More

14个回答2024-07-31

这似乎是低效的,但数量是最少的。

string str = "1212324"; >>>More