Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
I';m查找每个字母的频率,尽管它总是为所有字母返回0 int main(){ 字符串[100]; int c=0,计数[26]={0},x; 获取(字符串); while(字符串[c]!='\0'){ 如果(string[c]>='a'&&string[c]#包括 int main(){ 字符串[100]; int c=0,计数[26]={0},x; scanf(“%s”,字符串(&s); while(字符串[c]!='\0'){ 如果(string[c]>='a'&&string[c]#包括 int main(){ 字符串[100]; int c=0,计数[26]={0},x; scanf(“%s”,字符串(&s); while(字符串[c]!='\0'){ if(string[c]>='a'&&string[c]_C - Fatal编程技术网

I';m查找每个字母的频率,尽管它总是为所有字母返回0 int main(){ 字符串[100]; int c=0,计数[26]={0},x; 获取(字符串); while(字符串[c]!='\0'){ 如果(string[c]>='a'&&string[c]#包括 int main(){ 字符串[100]; int c=0,计数[26]={0},x; scanf(“%s”,字符串(&s); while(字符串[c]!='\0'){ 如果(string[c]>='a'&&string[c]#包括 int main(){ 字符串[100]; int c=0,计数[26]={0},x; scanf(“%s”,字符串(&s); while(字符串[c]!='\0'){ if(string[c]>='a'&&string[c]

I';m查找每个字母的频率,尽管它总是为所有字母返回0 int main(){ 字符串[100]; int c=0,计数[26]={0},x; 获取(字符串); while(字符串[c]!='\0'){ 如果(string[c]>='a'&&string[c]#包括 int main(){ 字符串[100]; int c=0,计数[26]={0},x; scanf(“%s”,字符串(&s); while(字符串[c]!='\0'){ 如果(string[c]>='a'&&string[c]#包括 int main(){ 字符串[100]; int c=0,计数[26]={0},x; scanf(“%s”,字符串(&s); while(字符串[c]!='\0'){ if(string[c]>='a'&&string[c],c,C,隐式声明意味着必须在调用之前定义函数,或者必须定义其原型,并且此代码正在生成隐式声明警告,因为gets()已从c11标准中删除,因为它在检查数组绑定时不起作用,并且它的原型在stdio头文件中不存在。 否则程序工作正常。隐式声明意味着必须在调用之前定义函数,或者必须定义其原型,并且此代码正在生成隐式声明警告,因为gets()已从c11标准中删除,因为它在检查数组绑定时不起作用,并且它的原型在stdio头文件中不存在。 否则程序工作正常。get()使用起来有风险。由于get()不执行任何数组绑定测

隐式声明意味着必须在调用之前定义函数,或者必须定义其原型,并且此代码正在生成隐式声明警告,因为gets()已从c11标准中删除,因为它在检查数组绑定时不起作用,并且它的原型在stdio头文件中不存在。
否则程序工作正常。

隐式声明意味着必须在调用之前定义函数,或者必须定义其原型,并且此代码正在生成隐式声明警告,因为gets()已从c11标准中删除,因为它在检查数组绑定时不起作用,并且它的原型在stdio头文件中不存在。 否则程序工作正常。

get()
使用起来有风险。由于get()不执行任何数组绑定测试,因此它会出现缓冲区溢出。
get()
会一直读取,直到看到换行符为止

尝试
scanf(“%99[^\n]”,string);
而不是您的代码
get(string);

尝试此修改后的代码。这将起作用:-

#include <stdio.h>

int main (){
    char string[100];
    int c=0,count[26]={0},x;
    scanf("%s",&string);
    while(string[c]!='\0'){
        if (string[c] >= 'a' && string[c] <= 'z') {
            x = string[c] - 'a';
            count[x]++;
        }
        c++;
    }

    for (c = 0; c < 26; c++){
        printf("%c occurs %d times in the string.\n", c + 'a', count[c]);
    }
    return 0;
}
gets()
使用起来有风险。由于gets()不执行任何数组绑定测试,它会遭受缓冲区溢出。
gets()
会一直读取,直到看到换行符为止

尝试
scanf(“%99[^\n]”,string);
而不是您的代码
get(string);

尝试此修改后的代码。这将起作用:-

#include <stdio.h>

int main (){
    char string[100];
    int c=0,count[26]={0},x;
    scanf("%s",&string);
    while(string[c]!='\0'){
        if (string[c] >= 'a' && string[c] <= 'z') {
            x = string[c] - 'a';
            count[x]++;
        }
        c++;
    }

    for (c = 0; c < 26; c++){
        printf("%c occurs %d times in the string.\n", c + 'a', count[c]);
    }
    return 0;
}

这是一个警告,而不是一个错误。当您使用其中声明的任何I/O函数时,请执行
#include
。对我有效(使用
get
和忽略
get
并使用预定义字符串)。你能显示你的I/O吗?@TonyTannous你对在StackOverflow编辑器中创建一致缩进的有效方法感兴趣吗?我测试了你的代码,效果很好。问题应该出在其他地方,可能是你输入文本的方式。只需尝试类似于
echo aab | your | u prog
的方法。这是一个警告,而不是一个错误。请执行
#include
当您使用其中声明的任何I/O函数时。对我有效(使用
gets
和忽略
gets
并使用预定义字符串)。你能显示你的I/O吗?@TonyTannous你对在StackOverflow编辑器中创建一致缩进的有效方法感兴趣吗?我测试了你的代码,效果很好。问题应该出在其他地方,可能是你输入文本的方式。只需尝试类似于
echo aab | your|u prog
的方法。虽然代码可能是正确的,但也可能是正确的tter如果您可以提供解释(您更改了什么,为什么更改),请不要发布文本截图。
scanf(“%s”,&string);
gets
一样不安全,但更糟糕的是,它使用
scanf
进行用户输入(
scanf
是基于令牌的,而不是基于行的,与用户期望相反),并且错误(
%s
使用的是
字符*
,而不是
字符(*)[100]
。虽然代码可能是正确的,但如果您可以提供解释(您更改了什么,以及为什么更改),请不要发布文本的屏幕截图。
scanf(“%s”),&string)
获取
一样不安全,但更糟糕的是,它使用
scanf
进行用户输入(
scanf
是基于令牌的,而不是基于行的,这与用户的期望相反),并且获取错误(
%s
使用
char*
,而不是
char(*)[100]
。那么它在哪里定义?@nadia
gets
已从C中删除。停止尝试使用它。那么它在哪里定义?@nadia
gets
已从C中删除。停止尝试使用它。这仍然会产生垃圾输出。您没有检查
scanf
的返回值以查看它是否成功。这仍然可能是错误的生成垃圾输出。您没有检查
scanf
的返回值以查看它是否成功。
#include <stdio.h>
int main (){
    char string[100];
    int c=0,count[26]={0},x;
    scanf("%99[^\n]", string);
    while(string[c]!='\0'){
        if (string[c] >= 'a' && string[c] <= 'z') {
            x = string[c] - 'a';
            count[x]++;
        }
        c++;
    }

    for (c = 0; c < 26; c++){
        printf("%c occurs %d times in the string.\n", c + 'a', count[c]);
    }
    return 0;
}
#include <stdio.h>
int main (){
    char string[100];
    int c=0,count[26]={0},x;
    fgets(string,100, stdin);  // 100 is the Max Limit of array
    while(string[c]!='\0'){
        if (string[c] >= 'a' && string[c] <= 'z') {
            x = string[c] - 'a';
            count[x]++;
        }
        c++;
    }

    for (c = 0; c < 26; c++){
        printf("%c occurs %d times in the string.\n", c + 'a', count[c]);
    }
    return 0;
}