修改字符串的结尾

问题描述 投票:0回答:0

我有一个任务是从文本文件中读取行,我有给定的行数。我创建了一个 for 循环并使用 getline 读取整行,但是当我必须将它与其他字符串进行比较时,我没有得到正确的结果。

我认为这可能是因为' ' 最后,并创建了一个函数来消除 ' '字符并用''更改它,但后来我遇到了分段错误。更准确地说,只有当我对字符串的 len-1 字符执行此操作时,才会出现段错误。这个问题可能取决于字符串的内存分配方式吗?

void remove_newline(char *c){
int len=strlen(c);
if(c[len-1]=='\n'){
c[len-1]='\0';
}
}
int main(){
FILE *f = fopen("input.txt", "r");
char *buffer = (char *)malloc(20 * sizeof(char));
size_t max=25;
  getline(&buffer, &max, f);
    remove_newline(buffer);
return 0;
}
c
© www.soinside.com 2019 - 2024. All rights reserved.