輸入一串字元,找出最長和最短單詞並輸出
在上篇的基礎上,稍新增幾個變數則可輸出最長和最短;
#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char arr[1024] = {0}; char brr[50] = {0}; char crr[50] = {0}; puts("請輸入"); scanf("%[^\n]",arr);// %[^\n]掃描集用法,表示讀取除"\n"以外的字元 int i,j; int n,m = 0;// n 標記單詞尾,m標記單詞頭,必須初始 m = 0; int len = strlen(arr); int b_len = 0;// 設定最長比較值 int c_len = 50;// 設定最短比較值 for(i = 0;i < len;i++) { if(arr[i] == ' ' || i == len - 1) { n = i; if(n - m > b_len) { b_len = n - m; int k = 0; memset(brr,0,50);//在找到最長單詞前每次清零,防止記憶體洩漏 for(j = m;j < n;j++) { brr[k++] = arr[j]; } if(i == len - 1) { brr[k++] = arr[len - 1]; } } if(n - m < c_len) { c_len = n - m; int k = 0; memset(crr,0,50);//在找到最短單詞前每次清零,防止記憶體洩漏 for(j = m;j < n;j++) { crr[k++] = arr[j]; } if(i == len - 1) { crr[k++] = arr[len - 1]; } } m = i + 1;//i == ' '時,i + 1 表示下一個單詞頭 } } puts("最長單詞:"); printf("%s\n",brr); puts("最短單詞:"); printf("%s\n",crr); return 0; }
相關推薦
輸入一串字元,找出最長和最短單詞並輸出
在上篇的基礎上,稍新增幾個變數則可輸出最長和最短; #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char arr[1024] =
輸入一串字元,把其中的大寫字母變成小寫字母並輸出
#include <stdio.h> #define MAX 1000//最大化容量 #include <string.h> int main()`在這裡插入程式碼片` { char a[MAX]; printf("輸入字串
輸入一串字元,只包含“0-10”和“,”,找出其中最小的數字和最大的數字(可能不止一個),輸出最後剩餘數字個數
輸入一串字元,只包含“0-10”和“,”找出其中最小的數字和最大的數字(可能不止一個),輸出最後剩餘數字個數。如:輸入 “3,3,4,5,6,7,7” 輸出 3 支援0-10 #include "stdafx.h" int _tmain(int a
輸入一組數字,找出其排列的最小值
#include <iostream> using namespace std; void bubblesort(int a[], int x) { int y, z; for (y = 0; y <= x - 1; y++) {
輸入一組數,找出其中滿足某種條件的數(二)
new pan cout include str view 哈希 出現 ash 書接上文。 輸入一組數,找出其中滿足某種條件的數。 短短的一句話,可以衍生出各種場景。今天遇到一道題,輸入一些學生的分數,哪個分數出現的次數最多?如果有多個並列,從大到小輸出。分數均為不超過10
輸入一串字元,並判斷其中英文字元和數字字元的個數——C語言實現(C語言練習)
先看程式執行的結果,(文末有該程式的完整程式碼) 1、先寫好框架 #include<stdio.h> void main() { } 2、再定義所需要的變數 char str;//定義一個字元型變數 str int i=0,counte
給定一個數組,找出陣列缺少的最小的正整數
題目使這樣的:請設計一個高效演算法,查詢陣列中未出現的最小正整數。 給定一個整數陣列A,請返回陣列中未出現的最小正整數。 測試樣例: [-1,2,3,4] 返回1 一看到這個題目我想到的是用另外的一個數組B,長度為A的長度+1,來儲存遍歷陣列A的數的值。 if(A[i]
輸入一串字元,分別輸出字母 數字 符號的個數,以$結束
# include <iostream> using namespace std; int main() { char ch; int xiao = 0; int da = 0;
10月7日 c語言 輸入一串字元,單詞之間用空格隔開,統計其中有多少個單詞
#include<stdio.h> int main() {char string[100];int i,num=0,word=0;char c;printf("please input a sentense\n");gets (string);for(i=0;
筆試題輸入一串字元,倒敘單詞輸出,結尾符號不變
案例,輸入“Hello I am there!” 輸出“there am I Hello!” 程式簡單直接上 import java.util.Scanner; public class A{ public static v
go語言面試題:輸入一段英文字串,找出重複出現次數最多的字母
package main import ( "bufio" "os" "fmt" "strings" ) func main() { reader := bufio.NewReader(os.Stdin) str, err := reader.
作業題:輸入4個整數,找出其中最大的數。用一個函數來實現. 分別使用結構化方法和函數嵌套的方法。
system 是否 進行 如果 div 使用 clu 函數 整型 之前在main()函數中的思路是: #include <iostream> using namespace std; int main(){ //求四個數中最大的數? /
在一個無序整數數組中,找出連續增長片段最長的一段, 增長步長是1。Example: [3,2,4,5,6,1,9], 最長的是[4,5,6]
lse [] 是我 == push color 感覺 bsp emp 在一個無序整數數組中,找出連續增長片段最長的一段, 增長步長是1。Example: [3,2,4,5,6,1,9], 最長的是[4,5,6] 下面是我自己的編寫的代碼,感覺還能再優化。 希望有大神可以分享
一個輸入的陣列中長度為101,陣列範圍[1,100],存在一個數重複,找出重複的數
/********************************************* *函式功能: 一個輸入的陣列中長度為101,陣列範圍[1,100],存在一個數重複,找出重複的數 *引數說明 * 輸入: [1,2,4,5,6,...,39,39,40,41,
輸入一串字元,將其中的大寫變成小寫,若不為大寫則原樣輸出
方法一 import java.util.Scanner; public class Main { public static void main(String[] args) {
輸入n個整數,找出其中最小的K個數
vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { int len=input.si
輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。
解題思路: 1、最簡單方法,先排序,再取前k個,時間複雜度O(NlogN) class Solution { public: vector<int> GetLeastNumbers
給定一個數組,找出這個和最大的連續子陣列的和
將這個連續子陣列分為兩部分,一個是字首,一個是後一個元素,要使這個連續子陣列最大,那麼它的字首肯定不能為負,不然這個字首對即將加上的值就無意義,用一個max記錄最大值,每次當前綴加上後一個元素的時候判斷和是否大於max,大於則更新max,再判斷和是否小於0,小於0則將字首更
Linux-C基礎知識學習:C語言作業-輸入10個整數,找出其中最大值和最小值
Linux基礎知識學習 C語言作業:輸入10個整數,找出其中最大值和最小值 //讀10個整數存入陣列,找出其中最大值和最小值 #include <stdio.h> main(){ p
c語言從鍵盤中輸入一串字串,將字元中的大寫轉化成小寫字母,將小寫字母轉換成大寫字母,以*號鍵結束
#include <stdio.h> int main(int argc, const char * argv[]) { char c; c=getchar(); while (c!='*') { if(c