gpt4 book ai didi

c - 用空格查找并替换数组中的制表符?

转载 作者:太空宇宙 更新时间:2023-11-04 01:55:27 24 4
gpt4 key购买 nike

本练习的目的是创建一个可以读取文件内容并将其复制到新文件的程序。但还有另一件事要做,我不知道该怎么做:我还应该用 7 个空格替换我在文件中找到的所有制表符 ('\t')。我该如何解决后一个问题?谢谢。

我用这几行代码试过了,但显然不起作用。它还显示以下警告:

warning C4047: '=': 'char' differs in levels of indirection from 'char [8]'

for (int i = 0; i < x; i++){
if (buf[i] == '\t') {
buf[i] = " ";
}
}

这是我的代码:(当然,如果它可以在某些方面进行改进,请不要犹豫告诉我。谢谢)

#include <stdio.h>
#include <stdlib.h>

int main(void) {
char buf[500];
FILE *fp, *nuovo;
errno_t err, err1;

/*lettura e creazione file*/
if (err = fopen_s(&fp, "text.txt", "r")) {
printf("Errore");
} else {
printf("File Letto");
}
if (err1 = fopen_s(&nuovo, "nuovo.txt", "w")) {
printf("Errore");
} else {
printf("File Creato");
}

int x = fread_s(buf, sizeof(buf), 1, 500, fp);
/*THIS IS THE PLACE FOR THE MISSING CODE*/


fwrite(&buf, 1, x, nuovo);
fclose(fp);
fclose(nuovo);
}

最佳答案

您不能将一个字符替换为包含多个字符的字符串。

解决此问题的一种方法如下:您可以在执行输出时进行替换,而不是就地进行替换。

遍历buf中的字符,检查buf[i]是否为TAB。如果不是TAB,调用fputc(buf[i], nuovo)。否则,调用 fputs("", nuovo)

关于c - 用空格查找并替换数组中的制表符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35011613/

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