输入一段字符串,将每个单词首字母大写。(c语言)
#include<stdio.h>voidmain(){inti;chars1[20],s2[15],c;gets(s2);for(i=0;(c=s2[i])!='\0'...
#include<stdio.h>
void main()
{
int i;
char s1[20],s2[15],c;
gets(s2);
for (i=0;(c=s2[i])!='\0';i++)
s1[i]=s2[i];
for(i=0;i<15;i++)
if((c=s2[i])=='\0')
s1[i]=s2[i];
puts (s1);
}
为何不对? 展开
void main()
{
int i;
char s1[20],s2[15],c;
gets(s2);
for (i=0;(c=s2[i])!='\0';i++)
s1[i]=s2[i];
for(i=0;i<15;i++)
if((c=s2[i])=='\0')
s1[i]=s2[i];
puts (s1);
}
为何不对? 展开
9个回答
展开全部
你换个地方问,这里是烦恼的地方,没人会的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void
main(void)
{
int
i
=
0,
flag
=
1;
char
a[100];
gets(a);
for(i
=
0;
a[i]
!=
'\0';
i++)
{
if(a[i]
==
'
')
{
flag
=
1;
}
if((flag
==
1)&&(a[i]>=97&&a[i]<=122))
{
a[i]=a[i]-32;
flag
=
0;
}
}
puts(a);
}
答案补充
用flag来判断是不是一个新的单词
void
main(void)
{
int
i
=
0,
flag
=
1;
char
a[100];
gets(a);
for(i
=
0;
a[i]
!=
'\0';
i++)
{
if(a[i]
==
'
')
{
flag
=
1;
}
if((flag
==
1)&&(a[i]>=97&&a[i]<=122))
{
a[i]=a[i]-32;
flag
=
0;
}
}
puts(a);
}
答案补充
用flag来判断是不是一个新的单词
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这段程序好像不是这个功能吧?像是把输入的字符串送到S2里,然后又把S2赋给S1,最后把S1输出。而且最后那段程序,就是把结束符'/0'从S2复制到S1的那部分,太麻烦了,可以很简单的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void
main(void)
{
int
i
=
0,
flag
=
1;
char
a[100];
gets(a);
for(i
=
0;
a[i]
!=
'\0';
i++)
{
if(a[i]
==
'
')
{
flag
=
1;
}
if((flag
==
1)&&(a[i]>=97&&a[i]<=122))
{
a[i]=a[i]-32;
flag
=
0;
}
}
puts(a);
}
void
main(void)
{
int
i
=
0,
flag
=
1;
char
a[100];
gets(a);
for(i
=
0;
a[i]
!=
'\0';
i++)
{
if(a[i]
==
'
')
{
flag
=
1;
}
if((flag
==
1)&&(a[i]>=97&&a[i]<=122))
{
a[i]=a[i]-32;
flag
=
0;
}
}
puts(a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第9行应该是
if(a[i]=='')
=是赋值语句,==才是判断比较的
if(a[i]=='')
=是赋值语句,==才是判断比较的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询