『壹』 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>!='