‘壹’ c语言问题 将首字母变为大写
这是把每个单词的首字母变成大写:
#include<stdio.h>
#define
islower(c)
(c>='a'&&c<='z')
#define
isupper(c)
(c>='A'&&c<='Z')
int
main()
{char
s[200];
int
i;
gets(s);
for(i=0;s[i];i++)
if(i==0||islower(s[i])&&(!(islower(s[i-1])||isupper(s[i-1]))))
s[i]-=32;
puts(s);
getch();
return
0;
}
这是将一行的首字母变成大写:
#include<stdio.h>
int
main()
{char
s[200];
int
i;
gets(s);
for(i=0;s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z';i++)
break;//遇到一行的首个字母就退出循环
if(s[i]>='a'&&s[i]<='z')s[i]-=32;//若它是小写字母就把它变为大写
puts(s);
getch();
return
0;
}
‘贰’ C语言求助 把一串字母的第一个大写
不是所有都放在循环里的
有的语句只要执行一次
改成如下即可
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
intmain()
{
chara[80];
inti=0;
gets(a);
intk=strlen(a);
if(a[0]>='a'&&a[0]<='z')a[0]=toupper(a[0]);//把第一个字母大写显然只需执行1次
for(i=0;i<k-1;i++)
{
if(a[i]==''||a[i]==' '||a[i]==' '||a[i]==' ')
if(a[i+1]>='a'&&a[i+1]<='z')
a[i+1]=a[i+1]-32;
}
puts(a);//最后打出a
return0;//结束程序
}
‘叁’ C语言字符串首字母大小写转换
基本也就只能这么做了,不过有问题是不是这个?
if(a[0]>='A'
&&
a[0]<'a')
改成
if(a[0]>='A'
&&
a[0]<='Z')
就好了?
----------------------------------------------------
这个问题是这里引起的:
for(i=0;
i<10
;i++)
因为字串默认是在\0就终止了,但是你非得把10个全都安%c输出,结果当然会比较诡异。
改成:
for(i=0;i<10
&&
a[i]!='\0';i++)
//(或者b[i])
就可以了。
‘肆’ c语言问题 将首字母变为大写
#include<stdio.h>
int main()
{
int i;
int word;
char str[200];
printf("请输入字符串:");
while(gets(str)!=NULL)
{
printf("修改后的字符串为:");
word=0;
for(i=0;str<i>!='