C语言 输入一行字符,统计其中有多少个单词 和 有三个字符串(网上找的代码有瑕疵已解决),找出其中最大者的完整代码及分析过程
問(wèn)題1:輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)單詞
思考這一類問(wèn)題的常用解決方法是什么?是這種形式的:
------》最終完整的代碼:《------
可以看到:
示例
char str[] = "One two 222 @@@ 333 three\n four\t five six ";
最終只有 One two three four five six 這6個(gè)單詞打印了出來(lái)。
像222 @@@ 333不是單詞,所以單詞數(shù)是6。
你可以加 444測(cè)試,例如
char str[] = "One two 222 @@@ 333 444 three\n four\t five six ";
單詞數(shù)仍然是6。(我已經(jīng)試過(guò)了)
眼睛看一眼以下注釋:
//我這是方便你直觀地閱讀感受程序的效果添加的一行,其實(shí)可不要,因?yàn)榭雌饋?lái)笨了點(diǎn)哈哈//你把我的代碼原封不動(dòng)調(diào)試完后把這行代碼刪了,或注釋掉。//然后你自己把char str[] = "你自己測(cè)試的字符串"//或者用gets()接受字符串//我這也好長(zhǎng)時(shí)間沒(méi)寫(xiě)c代碼的,怎么簡(jiǎn)單就怎么來(lái),期待后面的后浪們優(yōu)化程序哈哈//printf("\n打印第%u單詞:%c%c%c%c%c\n",wc+1,*str,*(str+1),*(str+2),*(str+3),*(str+4),*(str+5));//一定要記得調(diào)試完注釋掉這一行代碼!!!------》網(wǎng)上不是太完整的代碼:【可能是考試的"標(biāo)準(zhǔn)答案",唉。。。】《------
//輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)單詞 #include<stdio.h> #include<string.h> int main() { char string[81]; int i,num=0,word=0; char c; gets(string); for(i=0;(c=string[i])!='\0';i++) if(c==' ') word=0; else if(word==0) { word=1; num++; } printf("There are %d words ",num); }調(diào)試的結(jié)果:
算法圖解如下:
------》輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)單詞 的問(wèn)題到此解決了《------
升級(jí)問(wèn)題如下:
問(wèn)題2:有三個(gè)字符串,找出其中最大者
例如
搞清楚字符串的比較邏輯是什么?【問(wèn)題是什么?問(wèn)題的解決邏輯是什么?代碼實(shí)現(xiàn)。】
字符串的比較邏輯:
當(dāng)s1<s2時(shí),返回為負(fù)數(shù);
當(dāng)s1=s2時(shí),返回值= 0;
當(dāng)s1>s2時(shí),返回正數(shù)。
即:兩個(gè)字符串自左向右逐個(gè)字符相比(按ASCII值大小相比較),直到出現(xiàn)不同的字符或遇’\0’為止。如:
搞清楚字符串的比較邏輯之后,那么how hello hinihao 這三個(gè)字符串大小的關(guān)系是:
how > hinihao > hello
所以輸出最大的字符串就是輸出how.
完整代碼如下:
輸入:
how
hello
hinihao
代碼應(yīng)該執(zhí)行輸出:
how
截圖:
------》搞定 問(wèn)題2:有三個(gè)字符串,找出其中最大者 的問(wèn)題到此解決了《------
秘籍思維:
編程就是解決問(wèn)題。
解決問(wèn)題就是找解決邏輯。
最終將邏輯轉(zhuǎn)化為代碼實(shí)現(xiàn)。【c語(yǔ)言代碼,python代碼,go代碼】
總結(jié)
以上是生活随笔為你收集整理的C语言 输入一行字符,统计其中有多少个单词 和 有三个字符串(网上找的代码有瑕疵已解决),找出其中最大者的完整代码及分析过程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Infineon TC297 reset
- 下一篇: symbian error stary