gpt4 book ai didi

c - 用C中的空格替换字符数组中的制表符

转载 作者:太空宇宙 更新时间:2023-11-03 23:31:31 25 4
gpt4 key购买 nike

我做了一个小的 C 程序,这样我就可以自动清除作业中的所有制表符,并用 4 个空格替换它们。我在具有以下功能的字符数组中找到选项卡 -

char * tabFinder(char * fileString,int * nonNullItems)
{
int numElements = 0;
int run = 1;
while(run)
{
while(fileString[numElements] != '\t' &&
fileString[numElements] != '\0')
numElements++;

if(fileString[numElements] == '\t')
{
fileString = tabDestroyer(fileString,&numElements,nonNullItems);
*nonNullItems = *nonNullItems + 3;
} else run = 0;

}
fileString[*nonNullItems + 1] = '\0';
return fileString;
}

每次找到一个选项卡时,它都会将它传递给我的替换函数 tabDestroyer,它看起来像这样 -

char * tabDestroyer(char * fileString, int * indexOfTab,int * currentItems)
{
char * tempString = malloc(*currentItems + 3);
int index = 0,tempIndex;;

while(index < *indexOfTab)
{
tempString[index] = fileString[index];
index++;
}

tempString[index++] = " ";

tempString[index++] = " ";

tempString[index++] = " ";

tempString[index++] = " ";


*currentItems = *currentItems + 3;

while(index < *currentItems)
{
tempString[index] = fileString[index - 3];
index++;
}

return tempString;
}

它成功找到并替换了选项卡,但我对替换选项卡的内容有疑问。

例如,从文件中读入的字符串看起来像这样(假装前面有一个标签)-

        int i, numHuge, rowCount = 0;

变成这个-

FFFFint i, numHuge, rowCount = 0;

知道为什么会这样吗?

最佳答案

char * tempString;
tempString[index++] = " ";
^ ^

对于初学者,使用单引号,即 ' '

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

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