这里提供一种做法,空格也会被存进字符串里。
如果空格是不需要的,可用DeleteSpace(node[i].a)来删除空格。或者在选取字符时跳过空格即可。
#include <stdio.h>
#define N 100
char a[N][N], b[N][N], c[N][N];
void DeleteSpace(char *p){
int i, j;
for(i = 0; p[i] != '\0'; i++)
if(p[i] == ' '){
for(j = i; p[j] != '\0'; j++)
p[j] = p[j+1];
i--;
}
}
int main(){
char filename[100] = "in.csv";
FILE *file;
file = fopen(filename, "r");
if(file == NULL){
puts("error");
return 1;
}
char buf[N];
int i, j, cnt = 0;
while((fgets(buf, N, file)) != NULL){
// puts(buf);
i = j = 0;
for(; buf[i] != ','; i++){
//if(buf[i] == ' ') continue; //跳过空格,下面同理
a[cnt][j++] = buf[i];
}
a[cnt][j] = '\0';
j = 0;
i++;
for(; buf[i] != ';'; i++)
b[cnt][j++] = buf[i];
b[cnt][j] = '\0';
j = 0;
i++;
for(; buf[i] != '\n'; i++)
c[cnt][j++] = buf[i];
c[cnt][j] = '\0';
cnt++;
}
for(i = 0; i < cnt; i++)
printf("#%s# #%s# #%s#\n", a[i], b[i], c[i]);
return 0;
}
追问不好意思啊。。不是三个字符,是三组字符串。。。
追答这样不就是三组字符串吗..