題目:編寫函數void count(char a[],char w[][10],int n,int b[])。功能是:統計w指向的數組中的n個單詞在a指向的字符串中各自出現的次數(將非字母字符看作單詞分割符),擰將統計結果依次保存在b指向的數組中。
#include <stdio.h>#include <stdlib.h>#include <string.h>void input(char w[][10],int n); //輸入函數void count(char a[],char w[][10],int n,int b[]);int main(){ char w[10][10]; char str[100]; int result[50]; //用于存放統計結果 int n = 0; //單詞個數 PRintf("請輸入一個總的字符串:/n"); fgets(str,100,stdin); printf("請確認需要找出的單詞數:/n"); scanf("%d",&n); printf("請輸入%d個單詞:/n",n); input(w,n); count(str,w,n,result); return 0;}void input(char w[][10],int n){ int i = 0; int j = 0; for (i = 0 ; i < n ; i++) { scanf("%s",w[i]); }}void count(char a[],char w[][10],int n,int b[]){ int count_num = 0; int i = 0; //i為總字符串a[]的循環變量 char temp[10]; //定義臨時數組用于和w比較 int j = 0; //該循環變量用于臨時數組 int k = 0; //該循環變量用于b[] int l = 0; //該循環變量用于w[][10] for (l = 0 ; l < n ;l++ ) //現從w中拿出第0行進行比較 { for ( i = 0 ; i < strlen(a) ; i++) { while ( (a[i] >= 'A' && a[i] <= 'Z') || ( (a[i] >= 'a' && a[i] <='z') ) ) { temp[j]=a[i]; i++; j++; } temp[j] = '/0'; //賦予temp /0 字符串結束標志 if ( strcmp(temp,w[l]) == 0) { count_num++; } j = 0; //j置0,再重新為temp賦值 } b[k] = count_num; k++; count_num = 0; } printf("結果分別為:/n"); for ( i = 0 ; i < k ; i++) { printf("%d/n",b[i]); }}
新聞熱點
疑難解答