gpt4 book ai didi

c - 循环一个 Const Char

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

我需要循环一个const char,我使用了一个简单的字符串循环示例:

const char *str;
for(int i = 0; i < 10; ++i)
{
str += " ";
}

但是当我尝试编译时,我得到了这个:

ubuntu@eeepc:~/Test_C_OS$ gcc -o kernel.o -c kernel.c -Wall -Wextra -nostdlib -nostartfiles -nodefaultlibs
kernel.c:26: error: ‘for’ loop initial declaration used outside C99 mode
kernel.c:28: error: invalid operands to binary +
ubuntu@eeepc:~/Test_C_OS$

我该怎么办?

最佳答案

你的第一个错误是因为你做了:

for (int i = 0; ...

代替:

int i;
for (i = 0; ...)

(或者,您可以不理会该位并将 -std=gnu99 添加到您的 gcc 选项中)。

您的第二个错误是因为该行:

   str += " ";

尝试添加两个指针值。这在 C 中没有任何定义的语义——它没有任何意义。您在这里尝试做什么甚至不是特别清楚 - 也许您想从一个空字符串开始,然后将字符串 "" 的 10 个副本附加到它?如果是这样,那么您需要将其更改为:

char str[100]; /* Allocate space for a 99 character string, plus terminator */
int i;

str[0] = '\0'; /* Start with empty string */
for (i = 0; i < 10; i++)
{
strcat(str, " ");
}

但是在这种特殊情况下,因为您总是循环 10 次,所以您根本不需要循环 - 您可以只使用 10 个空格的字符串:

char str[100];

strcpy(str, " "); /* 10 spaces */

(str[0] = '\0'; 是不必要的,因为我们现在使用的是 strcpy,而不是 strcat)。

关于c - 循环一个 Const Char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2104739/

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