C语言求助:输入一个英文句子,将每个单词的第一个字母改成大写字母。

2024-10-30 18:33:22
推荐回答(4个)
回答1:

给一个最粗糙的版本,能实现
#include
main()
{
char str[50];
int i,len;
printf("input a sentence:\n");
gets(str);
len=strlen(str);
str[0]=str[0]-32;
for(i=0;i {
if(str[i]==' ')
str[i+1]=str[i+1]-32;
}
printf("%s\n",str);
return 0;
}

回答2:

if(k==0&&a[i]<97&&a[i]>122)
这句有逻辑错误。a[i]不可能同时小于97和大雨122.后面那个&&应该是||。
应该是这句引起的。

回答3:

#include     
int main()
{
int n1,i;
printf("输入一维数组长度:");
scanf("%d\n",&n1);
char array[n1];
for(i=0;i {
scanf("%c",&array[i]);//输入英文句子
}
if(array[0]>='a'&&array[0]<='z')
array[0]=array[0]-32;
for(i=1;i {
if(array[i]==' '||array[i]=='\n')
{
if(array[i+1]>='a'&&array[i+1]<='z')
{
array[i+1]=array[i+1]-32;
}
}
}
for(i=0;i {
printf("%c",array[i]);
}
return 0;
}

回答4:

#include
#include
main()
{
int i,l;
char a[100];
scanf("%s",a);
getchar();
if('a'<=a[0]&&a[0]<='z')
a[0]=a[0]-32;
printf("%s\n",a);
}
希望能帮到你!