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