puts遇到空格无法输出_输入一句英文,只包含字母和空格,如何输出这句英文中.....-黑马程序员技术交流社区...
//輸入一句英文,只包含字母和空格,如何輸出這句英文中的最長(zhǎng)單詞?再把每個(gè)單詞的首字母轉(zhuǎn)換成大寫!
#include
#include
int main(int argc, const char * argv[])
{
//讓用戶輸入一段英文,
printf("請(qǐng)輸入一段英文:\n");
char chr[50]={'a'};
fgets(chr, 50, stdin);
if (chr[strlen(chr)-1]=='\n')
{
chr[strlen(chr)-1]=' ';
}
//聲明一個(gè)二維字符數(shù)組用來(lái)保存字符單詞
char ch[10][20]={'a'};
//聲明一個(gè)數(shù)組用來(lái)保存/n的位置
int num[10] ={0};
//這里的思路是:讓num[0]=0,方便下一步,將英文段中的空格下標(biāo)全部找出來(lái)給整形數(shù)組賦值,通過(guò)空格的下標(biāo)來(lái)將英文段的每個(gè)字母賦值給字符二維數(shù)組;
int j = 0;
for (int i = 0; i < 50; i++)
{
if (chr[i]==' ')
{
num[++j]=i;
}
}
//將一段英文中的內(nèi)容賦值到二維數(shù)組中
for (int i = 1; i <= 10; i++)
{
int k = 0;//定義一個(gè)變量,每次讓k從0開(kāi)始
for (int j = num[i-1]; j
{
if (chr[j]!=' ')
{
ch[i-1][k++]=chr[j];
}
}
}
//聲明一個(gè)指針變量用來(lái)指向二維數(shù)組的第0個(gè)元素,找出整個(gè)二維數(shù)組中的最長(zhǎng)
char *t = ch[0];//因?yàn)樽址麛?shù)組的地址是常量無(wú)法改變,聲明一個(gè)字符指針,首先指向第0行和其他行的字符串作比較,如果大于第0行就將長(zhǎng)的字符串地址賦值給指針變量,輸出指針變量就是最長(zhǎng)字符串
for (int i = 1; i< 10; i++)
{
if (strlen(t)
{
t = ch[i];
}
}
printf("最長(zhǎng)單詞為:%s\n",t);
//轉(zhuǎn)換為大寫的思路就簡(jiǎn)單了,找到每一行的每一列的第一個(gè)元素,將他們減去32,就得到他們大寫,再打印出來(lái);
for (int i = 0; i < 10; i++)
{
*ch[i]=*ch[i]-32;
}
//循環(huán)輸出時(shí),會(huì)打印出其他代碼,可以選擇性的打印
for (int i = 0; i< 10; i++)
{
if (*ch[i]!='\340')
{
printf("%s ",ch[i]);
}
}
printf("\n");
return 0;
}
總結(jié)
以上是生活随笔為你收集整理的puts遇到空格无法输出_输入一句英文,只包含字母和空格,如何输出这句英文中.....-黑马程序员技术交流社区...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 怎样完成梦幻西游“小雷音寺”剧情任务?
- 下一篇: jq获取同级元素_jq获取上级、同级、下