c/c++语言开发共享为什么显示随机数? C程序读取字母

所以我必须创建一个程序来读取用户输入,并显示每个字母出现在该字符串中的次数,以及有多少非字母,但我的字母代码显示随机数。

#include  #include  #define SIZE 100 void readInput (char string[]); void Calc(char string[], int letters[]); void readInput (char string[]) { printf ("Enter a String:n"); fgets (string, SIZE, stdin); string[strlen (string) - 1] = ''; } void Calc(char string[], int letters[]) { int c = 0, x; while (string[c] != '') { if (string[c] >= 'a' && string[c] <= 'z') { x = string[c] - 'a'; letters[x]++; } c++; } for (c = 0; c < 26; c++) printf ("%c occurs %d times in the entered string.n", c + 'a', letters[c]); } int main () { char string[SIZE]; int letters[26]; readInput (string); Calc(string, letters); return 0; } 

这是输出

我是新手中的字符串我用谷歌搜索过的例子,但似乎无法找到我的代码有什么问题,也不知道我将如何包含非字母部分。

    letters的内容未初始化 。 正式地,您的程序的行为是不确定的

    通过写入int letters[26] = {0};排序int letters[26] = {0}; 这样做会将所有元素设置为零,这就是你想要的。

    letters[]是单面化的。 解决方案int letters[26]={0}

    您正在读取未初始化的值,这是不确定的。 并且结果不符合您的预期。

    在这里,您要初始化元素,表示您还没有看过任何charcaters。 (自动存储持续时间)。

    覆盖'n'更好方法是

     string[strcspn(string, "n")] = 0; 

    你应该初始化所有0值的letters

      以上就是c/c++开发分享为什么显示随机数? C程序读取字母相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/522149.html

      (0)
      上一篇 2020年12月9日
      下一篇 2020年12月9日

      精彩推荐