gpt4 book ai didi

c - 如何在 C99 中迭代 char*?

转载 作者:行者123 更新时间:2023-11-30 20:18:41 26 4
gpt4 key购买 nike

我尝试了一些不同的方法来让它工作,但基本上我有一个长度为 6 个字母(最多)的名称,我需要将其输入到 char* 汽车中代替“-”。例如,如果名字是 Bob,汽车应该看起来像 ~O=Bob----o>

typedef struct Racer_S {

int row; ///< vertical row or "racing lane" of a racer

int distance; ///< column of rear of car, marking its position in race

char *graphic; ///< graphic is the drawable text of the racer figure

} Racer;

Racer * make_racer( char *name, int row ){
Racer *newRacer;
char *car = "~O=-------o>";
for (int i = 0; i < strlen(name); ++i)
car[i+3] = name[i];
// printf("%s\n",car);
// newRacer->row = row;
// newRacer->distance = 0;
// newRacer->graphic = car;
return newRacer;
}

最佳答案

car 指向一个字符串常量。这些是只读的,因此您无法修改它们。

相反,为字符串分配内存,然后修改它:

char *car = strdup("~O=-------o>");

您还需要为 newRacer 分配内存:

Racer *newRacer = malloc(sizeof(*newRacer));

不要忘记检查这些函数的返回值,以防它们失败。

关于c - 如何在 C99 中迭代 char*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53273161/

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