gpt4 book ai didi

C - 删除字符串中的空格

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:43 26 4
gpt4 key购买 nike

我正在使用 fgets 输入一个字符串,例如“ Hello World ”。我想尝试删除单词之间的空格,但我正在尝试的一直返回 hello@world(其中 @ 是随机字符)。

void sortString(char phrase[])
{
int i, j;
char temp[200];


for(i = 0; i < 200; i++)
{
if(!(isspace(phrase[i])))
{
temp[i] = phrase[i];
}
}

printf("%s", temp);
}

所以我基本上是将字符 [i] 从短语复制到一个临时数组,如果它不是空格的话,但我不确定为什么我得到一个随机字符而不是仅仅,因为例如,helloworld。

最佳答案

每当您在 phrase 中看到空白字符时,您只是跳过了 temp 中的等效位置,使其未初始化(包含垃圾)。您需要一个单独的计数器来跟踪 temp 数组中的当前位置。

此外,您应该检查 phrase 中以 \0 字符结尾的字符串,而不是盲目地复制所有 200 个字符,并确保 temp 字符串也安全终止。

确保 temp[] 实际上足够大,以便生成的输出留作进一步练习。 (查看 Gandaro 的答案以获取线索。)

void sortString(char phrase[])
{
int i, j;
char temp[200];

for(i = 0, j = 0; phrase[i] != '\0'; i++)
{
if(!(isspace(phrase[i])))
{
temp[j++] = phrase[i];
}
}

temp[j] = '\0';
printf("%s", temp);
}

关于C - 删除字符串中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9433278/

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