【发布时间】:2015-11-01 04:05:14
【问题描述】:
我的任务是将小写输入打印为大写,使用 return 0;如果成功。如果输入了非小写 ascii 字符,则应该有一条错误消息,我应该使用 return 1; 我已经完成了大部分代码,但是在使用错误消息和使用 return 1 时遇到了问题;没有它打印字符。
这是我的代码:
#include<stdio.h>
#include<string.h>
int main()
char ()
{
char letters[80];
int i;
scanf("%79[0-9a-zA-Z ]",letters);
for(i=0;i<strlen(letters);i++)
{
if(letters[i]>=97&&letters[i]<=122)
{
letters[i]=letters[i]-32;
}
}
printf("%s",letters);
return 0;
}
【问题讨论】:
-
注意:1.你应该将
%80改为%79,因为%80不会为终止空字符保留空间。 2. 不要使用i<=strlen(letters)。这样,您将读取终止的空字符并导致打印“错误”。使用i<strlen(letters)。 3. 如果你的老师没有禁止使用,你应该使用islower()检查字符是否是小写字母。 -
是否允许创建一个函数,将字母逐个传递,然后返回代码 0 或 1?然后您可以根据该返回码在正文中打印该字母(即如果 1 打印错误,则打印字母)
-
使用错误信息而不打印字符?你这是什么意思?
-
但在使用错误消息和使用 return 1 时遇到问题请用预期输出和当前输出正确解释您的问题。
-
你确定,你不允许做一个额外的功能。你必须使用主函数的返回值。你能给出问题的链接吗?
标签: c