串在我的代碼,我從文件中讀取逗號分隔值。我使用刪除功能來刪除逗號。我遇到問題的地方是遍歷字符串。我覺得我用來遍歷字符串的for
循環是正確的,但我可能做了一些非常愚蠢的事情,因爲程序失敗了。那麼,我如何正確地迭代一個字符串呢?通過迭代用C
文件中的每一行都有類似的格式:
0000000000001110,1
這裏是我的代碼:
#include <stdio.h>
#include <stdlib.h>
void removeChar(char *str, char garbage);
int main(){
FILE *ifp;
char *mode = "r";
ifp = fopen("in.csv", mode);
char* string;
int i, len;
while(fscanf(ifp, "%s", string)!=EOF){
removeChar(string, ',');
printf("%s \n", string); //gives me correct output of string with no comma
len = strlen(string);
for(i=0; i<len; i++) //where the error occurs
printf("%c", string[i]);
}
return 0;
}
void removeChar(char *str, char garbage) {
char *src, *dst;
for (src = dst = str; *src != '\0'; src++) {
*dst = *src;
if (*dst != garbage) dst++;
}
*dst = '\0';
}
你得到了什麼錯誤? – Haris 2014-10-03 07:08:31
@haris實際上沒有錯誤,程序只是崩潰。 – Ybarra 2014-10-03 07:10:19
我已經能夠使用相同的方法遍歷一個字符串,但在不同的程序中。我不知道這裏有什麼不同,導致錯誤。 – Ybarra 2014-10-03 07:12:08