我想確定在命令行參數中傳遞的單詞的頻率,所以我用一個字符串定義了一個結構並且它是count,現在問題是當我試圖通過比較結構數組中的字符串來搜索字符串時使用strcmp()
功能串,我越來越Segmentation Fault
,下面的代碼: -如何搜索結構數組中的字符串?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
char* word;
int count;
} argsArray;
int search(argsArray array[] , char* Word , int len){
for(int i=0; i < len; i++){
if(strcmp(array[i].word , Word)==0){
return i;
}
}
return -1;
}
int main(int argc , char* argv[]){
argsArray inputArgs[50];
int i,p=0,a;
for(i=0;i<50;i++){
inputArgs[i].word=NULL;
inputArgs[i].count=0;
}
for(i=1 ; i < argc ; i++){
a = search(inputArgs , argv[i] , argc);
if( a== -1){
inputArgs[p].word=argv[i];
inputArgs[p].count++;
p++;
}
else{
inputArgs[a].count++;
}
}
for(i = 0; i < p; i++){
printf("%s %d\n",inputArgs[i].word,inputArgs[i].count);
}
return 0;
}
感謝名單,它的工作:) –
不客氣。 – Muntasir