新手:字符串问题

_Wayne_ 2009-11-11 08:04:32
#include <stdio.h>

#define N 100
int main()
{
int i;
char str1[N];
scanf("%s",str1);
for (i=0;i<N;i++)
{
if (str1[i]>='A' && str1[i]<='z')
{
str1[i]=str1[i]+32;
}
}
printf("%s\n",str1);
return 0;
}
各位大哥大姐好!
小弟有一事相求!
本想把这个函数strlwr(string):大写转大写 写出来但写到这里之后link没问题
运行的时候我输入“WHAT IS YOUR NAME?”结果屏幕上只打出“what”来,我输入
“WHATISYOURNAME?”之后是“whatisyourname?” 这是怎么回事啊 大哥大姐
请指点下小弟吧!~~~~
小小心意不成敬意!
...全文
98 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
_Wayne_ 2009-11-11
  • 打赏
  • 举报
回复
行了!谢谢!
kouwenlong 2009-11-11
  • 打赏
  • 举报
回复
将scanf改成gets(str1);
if (str1[i]>='A' && str1[i] <='z') //这里z应该大写吧。
_Wayne_ 2009-11-11
  • 打赏
  • 举报
回复
哦!!我试不下!谢谢!
xixiaoliu 2009-11-11
  • 打赏
  • 举报
回复
gets(str1) 就可以了,见2楼
_Wayne_ 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xixiaoliu 的回复:]
scanf 遇到空格就停止的
[/Quote]
啊~~~~~
那怎么改?
用gets(str1[N])吗?
xixiaoliu 2009-11-11
  • 打赏
  • 举报
回复
要读到换行,可以用 gets, fgets 等:
gets(str1);
fgets(str1, 80, stdin); // 这个要指明最大长度,比 gets 安全性高一点
xixiaoliu 2009-11-11
  • 打赏
  • 举报
回复
scanf 遇到空格就停止的

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧