gpt4 book ai didi

c - 读取文件并跳过空格?

转载 作者:行者123 更新时间:2023-11-30 15:02:38 25 4
gpt4 key购买 nike

我试图从文件中取出一行,并将第一个单词放入一个数组中,将其余单词放入另一个数组中。但 SpanArray 总是空的,我不知道为什么。

我的功能;

void arrayIni(char *fullArray, char *emptyArrayEng, char *emptyArraySpan)
{
int counter= 0;
while(1)
{
emptyArrayEng[counter] = fullArray[counter];
counter++;
if (isspace(fullArray[counter]) )
{
break;
}
}
counter++;
while(1)
{
emptyArraySpan[counter] = fullArray[counter];
printf("%c",fullArray[counter]);
counter++;
if (fullArray[counter] == '\n'){
break;
}
}
int printer=0;
}

主要读取文件的位置;

int main() {
int ch;
char str[128], meaning[256];
FILE *file = fopen("/Users/users/Desktop/mko/mko/txttt", "r");
char array[300];
while(fgets(array, 300, file))
{
arrayIni(array, str, meaning);
insert(str, meaning);
}
}
return 0;
}

最佳答案

据我所知,您的 arrayIni 函数存在 3 个问题。

  1. 您没有使用 '\0' 终止数组
  2. emptyArraySpan 的索引应使用不同的计数器来完成
  3. 此外,您还应该将数组 fullArray 的长度传递给 arrayIni 函数,并根据计数器对其进行验证,以确保不存在越界访问

void arrayIni(char *fullArray, int fullArrayLen, char *emptyArrayEng, char *emptyArraySpan)
{
int counter= 0;
int counter_1 = 0;

while(counter < fullArrayLen)
{
emptyArrayEng[counter] = fullArray[counter];
counter++;
if (isspace(fullArray[counter]) )
{
break;
}
}

emptyArrayEng[counter] = '\0';
counter++;
while(counter < fullArrayLen)
{
emptyArraySpan[counter_1] = fullArray[counter];
printf("%c",fullArray[counter]);
counter_1++;
counter++;
if (fullArray[counter] == '\n'){
break;
}
}
emptyArraySpan[counter_1] = '\0';
int printer=0;
}

关于c - 读取文件并跳过空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40978192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com