gpt4 book ai didi

c - 我的字符串比较结果错误

转载 作者:行者123 更新时间:2023-11-30 21:11:12 26 4
gpt4 key购买 nike

嗨,我的程序是输入一个数字,该数字给出字符串的长度,然后输入字符串,最后输入一个字母,然后该字母应该告诉我该字母在字符串中出现了多少次。目前,为了帮助我找出我的代码有什么问题,我可以看到 strcmp 产生相同的 ascii 数字,但为负值。例如,对于字母 a,数字是 97,但 strcmp 给出 -97,因此 strcmo 不会将字符显示为字符串中的字符,并导致错误的结果。任何帮助将不胜感激。谢谢 #包括 #包括

int main(void)
{
char myChar[100], z, k;
int counter, n, g=0, r, i, l;
counter=0;
scanf("%d",&n);
while (counter<n)
{
counter++;
scanf(" %c",&myChar[counter]);
}

scanf(" %s", &z);

for(i=0;i<n+1;++i)
{
k=myChar[i];
r=strcmp(&z, &k);
l=r;
//printf("\n%c", myChar[i]);
printf("%d\n", l);
if(r==0)
{
g++;
printf("%d\n", g);
}
}
printf("\n\n%d\n", g);


return (0);
}

最佳答案

#include <stdio.h>
#include <string.h>

int main(void){
char myChar[100], str[64];//
int counter, n;
int i, j, k;

printf("number of charactors : ");
scanf("%d",&n);

for (i=0; i<n; ++i){
scanf(" %c", &myChar[i]);
}

printf("input string : ");
scanf("%63s", str);//"%s" : The useless one letter to input as a string. "%c" for &z

for(i=0;i<n;++i){
counter = 0;
for(j=0;str[j]!='\0'; ++j){
k = (str[j] == myChar[i]);//Comparison of each character
counter += k;//if(str[j] == myChar[i]) ++counter;
}
printf("%c is %d\n", myChar[i], counter);
}

return (0);
}

关于c - 我的字符串比较结果错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25086913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com