C语言中,主函数输入了一个字符串,怎样在函数调用里也使用这个字符串?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中,主函数输入了一个字符串,怎样在函数调用里也使用这个字符串?相关的知识,希望对你有一定的参考价值。

/*程序为输入一个字符串,输出每个大写字母的出现次数*/

int count(int i)

int j,num=0;
for(j=0;j<l;j++)

if('i'==s[j]) 这里为函数调用所需数组//

num=num+1;


return num;

int main()

char s[10000];
int i,l;
while(scanf("%s",s)!=EOF)//这里为主函数所输入的字符串

l=strlen(s);
for(i=65;i<91;i++)

printf("%c:%d\n",i,count(i));




error C2065: 'l' : undeclared identifier

error C2065: 's' : undeclared identifier

error C2109: subscript requires array or pointer type

这三个为错误。。
求解!。。。

函数里面定义的变量只能在这个函数内部使用……因此main函数定义的 l 和s不能在count里面用……追问

那怎样才可以。。还是我这个思想本身就行不通?。。
我这个思想是循环输出,每输出一个,调用一次函数,函数里需要这个输入语句。。

定为全局变量呢?。。执行过后发现wrong answer了 = =

追答

一定要用的话就把它们声明成外部变量吧……
char s[10000];
int l;
这两句放在文件的最前面,然后把main函数的对应定义删掉……

结果还有错误就是程序逻辑问题了,目测问题在if('i'==s[j])一句……

追问

哈!成功了,我那句if('i'==s[j])也写错了,改成if(i==s[j])就对了,可是i是数字,s[j]是字符串对应的字母或者其他字符啊,为什么能匹配。。?

追答

内存里面存储的是字符的编码,这个编码也不过是一个整数,因而能和数字比较……

参考技术A 呵呵,也是itat的考生啊,我做出来了忘带回来了
简单说一下思路,先测出句子的长度,用strlen(a),然后让指针p指向末尾:p=a+strlen(a),然后递减输出就行了

以上是关于C语言中,主函数输入了一个字符串,怎样在函数调用里也使用这个字符串?的主要内容,如果未能解决你的问题,请参考以下文章

C语言中怎样调用函数将十进制转换成二进制?

怎样检查C语言输入数据的合法性?

c语言中主函数能调用自己吗?

带参数的main函数,应该怎样运行呢

写一个函数实现对输入10个字符按由小到大顺序排列.在主函数中调用该函数并输出排序后的结果

C语言中怎样调用函数(举个例子)