#include<ctype.h>
#include<string.h>
#include<stdio.h>
int main(int argc,char*argv[])
{
char str[100+1];
int isfirst=1;
char ch;
int i=0;
while((ch=getchar())!=EOF)
{
if(isalpha(ch))
{
if(isfirst==1)
{
ch=toupper(ch);
isfirst=0;
}
}
else
{
isfirst=1;
}
str[i++]=ch;
}
str<i>='\0';
printf("%s\n",str);
return 0;
}
printf用法:
printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。
其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。
比如:
int a=1234;
printf("a=%d\n",a);
输出结果为a=1234。
scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include<stdio.h>。
int scanf(const char*restrict format,...);
函数scanf()是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
如:
scanf("%d%d",&a,&b);
函数返回值为int型,如果a和b都被成功读入,那么scanf的返回值就是2。
思路:先定义一个变量f用来标记是否是单词的开始位置,如果是开始位置就输出大写字母,并把f标记成false,如果遇到空格,就把f标记成true。依次遍历字符串即可。
参考代码:
#include "stdio.h"看不懂,有没有简单点的,只用数组写的。我们只学了数组。
看不懂,太难了
追答我这是最简单的方式,楼上的还用了位运算,估计你更看不懂。
楼下的调用了一堆库函数,可怜的效率啊!爱,算了,答案是给你了,
你不用我也没办法,下了
c语言:输入一行英文字符串,把每个单词第一个字母变为大写,输出修改后的...
include<string.h> include<stdio.h> int main(int argc,char*argv[]){ char str[100+1];int isfirst=1;char ch;int i=0;while((ch=getchar())!=EOF){ if(isalpha(ch)){ if(isfirst==1){ ch=toupper(ch);isfirst=0;} } else { isfirst=1;} str[i++]=ch;} str='\\0';...
C语言问题 输入一个英文句子 将每个单词的第一个字母改成大写字母。
include <string.h> include <stdio.h> int main(int argc, char* argv[]){ char str[100 + 1];int isfirst = 1;char ch;int i = 0;while((ch = getchar()) != EOF){ if(isalpha(ch)){ if(isfirst == 1){ ch = toupper(ch);isfirst = 0;} } else { isfirst = 1;...
(C语言编程)输入一个英文句子,将每个英文单词的头字母变为大写
输入一个字符串:how are You,fine thanks!修改后的字符串:How Are You,Fine Thanks!Press any key to continue
C语言输入一句英语句子,把每个单词的第一位改成大写,其他单词改为小写后...
include"stdio.h"#include"string.h" int main(){ int i,j,t=1; char a[1000]; gets(a); for(i=0;i<strlen(a);i++) { if(a[i]==' '){ t=1; continue; } if(t) { if(a[i]>='a'&&a[i]<='z') a[i]-=32; t=0 ; }...
c语言输入一行英文,把每个单词的第一个字母改成大写字母。
include<stdio.h>int isLetter(char c){if(c>='a'&&c<='z')return 1;return 0;}char s[999],i,k;int main(){scanf("%[^\\n]",s+1);s[0]=32;for(i=0;s[i];i++){if(s[i]==32&&(isLetter(s[i+1]))){s[i+1]=s[i+1]-'a'+'A';}}printf("%s",s+1);} ...
C语言编程 输入一个英文句子,把每个单词的第一个字母变大写后输出来
首先判断第一个字母,之后给第一个字母的asc减去32。然后通过printf输出。就可以了
c语言程序题:编成程实现输入一串英文字母,要求将每个单词首字母改...
main(){ char str[100] = {0};printf( "input:\\n" );scanf( "%s",str );int i = 0;if( str[0]>='a' && str[0]<='z' ) str[0]=str[0]-'a'+'A';while( str[i] != '\\0' ){ if( str[i] == ' ' ){ if( str[i+1]>='a' && str[i+1]<='z' ){ s...
C语言问题 输入一个英文句子,将每个单词的第一个字母改成大写字母
int i = 0;while((ch = getchar()) != EOF)ch = toupper(ch);isfirst = 0;else str[i] = '\\0';printf("%s\\n", str);return 0;} 简洁的语言 C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,...
c语言数组编程,输入一串英文字母,将每个字母改成大写字母并输出
include<stdio.h> include<string.h> include<ctype.h> void main(){ int i;char str[80];printf("input a string:\\n");gets(str);for(i=0;str[i]!='\\0';i++)str[i] = toupper(str[i]);printf("%s\\n",str);}
...一个英文句子,将每个英文单词的头字母变为大写,单词之间用空格隔开...
程序已在dev-c++下编译确认:\/*提取用空格分隔的字符串中的单词,并改单词首字母为大写*\/ include<stdio.h> include<stdlib.h> include<ctype.h> int partition(char *s1,char *s2,int pos){ int i,j;i=pos;while(s1[i]==' ')i++;if(s1[i]!='\\0'){ j=0;while(s1[i]!='\\0...