當前位置:首頁 » 編程語言 » c語言中首字母大寫怎麼寫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中首字母大寫怎麼寫

發布時間: 2023-01-23 02:47:42

『壹』 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&lt;stdio.h&gt;

int main()

{

int i;

int word;

char str[200];

printf("請輸入字元串:");

while(gets(str)!=NULL)

{

printf("修改後的字元串為:");

word=0;

for(i=0;str<i>!='';i++)

{

if(str<i>=='')

{

word=0;

printf("");

}

else if(word==0)

{

word=1;

str<i>=str<i>-32;

printf("%c",str<i>);

}

else

printf("%c",str<i>);

}

printf(" ");

}

return 0;

}

運行結果:

(4)c語言中首字母大寫怎麼寫擴展閱讀:

printf()用法:

1、printf()函數是格式化輸出函數,一般用於向標准輸出設備按規定格式輸出信息。

格式輸出,它是c語言中產生格式化輸出的函數(在stdio.h中定義)。用於向終端(顯示器、控制台等)輸出字元。格式控制由要輸出的文字和數據格式說明組成。

要輸出的文字除了可以使用字母、數字、空格和一些數字元號以外,還可以使用一些轉義字元表示特殊的含義。

簡單點理解就是,在一段程序中你正確使用該函數,可以在該程序運行的時候輸出你所需要的內容。

2、printf函數是一個標准庫函數,它的函數原型在頭文件「stdio.h」中。但作為一個特例,不要求在使用printf函數之前必須包含stdio.h文件。

『伍』 C語言,首字母大寫問題

for(int i=1;i
追問:
考慮了啊,如果前一個字母是空格,則後一個字母轉為大寫。。
追答:
你的意思是你輸入時保證以空格開頭?我在測試你的代碼,稍候
supper()函數中
if(c>'a' && c<'z') //這里應該加上=,不然會少兩個字母a z , 改成:
if(c>='a' && c<='z')
以下是調整後的完整代碼,請驗收,調整部分看注釋
#include
#include
char Super(char c);
int main()
{
char a[100];
int len;
printf("input :");
gets(a);
len=strlen(a);
a[0]=Super(a[0]); //加一句,保證首字母的大寫
for(int i=1;i
='a' && c<='z') //-------
{
return c-32;
}else
{
return c;
}
}
追問:
這個可以不加結束符吧,因為本來就有個結束符,不過謝謝你的解答,答案是對的,除了有點小瑕疵,因為首先要在前面定義int
i;
追答:
嗯,結束符確實是畫蛇添足了
評論
0
0
載入更多

『陸』 一個c語言的問題:首字母變大寫

#include<stdio.h>
void main()
{ char str[100],*p;
while(gets(str)!=EOF) //scanf()遇到空格回結束
{ p=str;
*p=*p-32;
for(p=str+1;*p!='\0';p++)
{
if(*p==' ') // == 不是 =
{ *(p+1)=*(p+1)-32;
}
}
printf("%s\n",str);
}
}

我只改了上面兩個地方,程序可以跑起來了,
但是從代碼判斷lz應該是初學者,所以盡管程序健壯性確實不高
我也沒有進行修改,因為lz需要的知道錯在哪,而不是怎麼優化
望lz不斷進步

『柒』 一個c語言的問題:首字母變大寫

解說一下:
*p=*p-32;
//
*p
未必是小寫字母
*(p+1)=*(p+1)-32;
//
*(p+1)
未必是小寫字母
可能是'\0';
正確做法參看1樓的回答,我只是補充說明一下,讓樓主更明白為何錯了,完畢

『捌』 c語言中將字元串的每個單詞首字母改成大寫用指針法

#include<stdio.h>
#include<ctype.h>

char*Fun(char*str)
{
intflag=1;
char*o=str;
while(*str)
{
if(flag)*str++=toupper(*str),flag=0;//轉換為大寫
elseif(isspace(*str++))flag=1;//查找空格
}
returno;
}

intmain()
{
charb[]="!";
printf("%s ",Fun(b));
return0;
}