(C语言编程)输入一个英文句子,将每个英文单词的头字母变为大写

2024-12-03 06:31:47
推荐回答(3个)
回答1:

#include
#include
main()
{ char s[80],*p;
printf("输入一个字符串:");
gets(s);
p=s;
while(*p)
{
while(!isalpha(*p))
p++;
if(*p>='a'&&*p<='z')
*p=*p-32;
while(isalpha(*p))
p++;
}
printf("修改后的字符串:");
puts(s);
}

运行结果如下:
输入一个字符串:how are You,fine thanks!
修改后的字符串:How Are You,Fine Thanks!
Press any key to continue

回答2:

#include
#include
#define MAX 100
int main()
{
char str[MAX],flag=0,*p=str;
gets(str);
while(*p)
{
if(isalpha(*p)&&flag==0)
{
*p=toupper(*p);
flag=1;
}
else
{
if(isspace(*p)&&flag==1)
{
flag=0;
}
}
++p;
}
puts(str);
return 0;
}

回答3:

#include
int main(void)
{
char St[100]; // 定义输入字符串
int i = 0; // 计数变量i
printf("请输入一个英文句子(以回车结束):");

while ((St[i] = getchar()) != '\n') // 输入字符串,并以回车结束
{
i++;
}

/*以下判断字符串首字母是否为大写,是就原样输出,否就转换后输出*/

if ((St[0] >= 'A') && (St[0] <= 'Z'))
{
i = 0;
while (putchar(St[i]) != '\n') // 原样输出
{
i++;
}

}
else
{
St[0] = St[0] - 'a' + 'A'; // 小写转换大写算法,任何的字符运算都以其ASCII值运算
i = 0;
while (putchar(St[i]) != '\n') // 输出转换后的字符串
{
i++;
}
}
return 0;
}