gpt4 book ai didi

比较 C 中的 2 个字符串数组

转载 作者:行者123 更新时间:2023-11-30 18:22:44 25 4
gpt4 key购买 nike

因此,我将混合字母和数字的字符串数组与包含字母的数组进行比较,然后收集相似的字符(即:仅字母)并将其放入不同的字符串数组中,然后打印它。 p>

第一次运行效果很好。尽管第二次,如果与字母表进行比较的字符串小于一定大小,它就会填充并显示一些额外的字母,有时还会显示一个不知从何而来的问号。

这是第一次输出:

Enter a string (1-40 characters): zxcvbnm,./asdfghjkl;qwertyuiop[]
Output: abcdefghijklmnopqrstuvwxyz

然后第二次:

Enter a string (1-40 characters): abcdefg
Output: abcdefgz?

明白我的意思了吗? “z?”不知从何而来。

再次调用该函数时,是否缓冲区中残留了一些字母或其他内容?

It turns out that I didn't have a null terminator at the end of the newest 
string before being printed! - Thanks to Mohamed!

最佳答案

检查您的代码,您的字符串应以空字符 '\0' 结尾。这就是您的问题的原因。

在你的代码中你必须添加

letters[z]= '\0';

for之后

    for (x = 0; x < 26; x++){
for (y = 0; y < strLen1; y++){
if (alphabet[x] == string[y])
{
letters[z]=string[y];
/* Increment z, to insert anothe letter in an empty space. */
z++;
}
}
}
letters[z]= '\0'; // add this line
printf("Output: %s\n\n", letters);

顺便说一句,您可以优化字母表检查

小写字母 {a, b, c, ......,z} 用其 ASCII 引用。

这样你就可以检查string[y]的ASCII是否在'a'的ASCII和'z'的ASCII之间 code> 而不是查看 alphabet[] 数组。更简单

关于比较 C 中的 2 个字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15618817/

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