c - 如何在c中按char复制字符串char?

标签 c

我在堆上声明了一大块内存。

char *str;
str = (char *)malloc(sizeof(char) * 10);

我有一个常量字符串。

const char *name = "chase";

因为 *name10 短,所以我需要用 chase 加上 5 个空格来填充 str

我尝试循环并设置 str[i] = name[i] 但有些东西我不匹配,因为我无法为额外的字符分配空格。这就是我要去的地方,只是试图用所有空格填充 str 以开始

int i;
for (i = 0; i < 10; i++)
{
    strcpy(str[i], ' ');
    printf("char: %c\n", str[i]);
}

最佳答案

正如其他人指出的那样,您需要

 //malloc casting is (arguably) bad
 str = malloc(sizeof(char) * 11);

然后,就去做

 snprintf(str, 11, "%10s", name);

使用 snprintf() 而不是 sprintf() 将防止溢出,并且 %10s 将根据需要填充结果字符串。

http://www.cplusplus.com/reference/cstdio/snprintf/

关于c - 如何在c中按char复制字符串char?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21963633/

相关文章:

c - SO_LINGER 和关闭套接字(WINSOCK)

c - fork 时复制 printf

C 需要赋值char f[500];字符*k[500];一个到另一个。

c - recvfrom() 未接收完整缓冲区

c - fgetc 未从大 txt 文件的开头开始

c - 使用-不使用 while 循环在 C 中随机播放一个 int 数组

C - 循环意外结束

C - 单链表 - 按值传递指针与按引用传递指针

c++ - 交换整数的代码适用于 C++,但不适用于 C

c - 子请求未发送或请求挂起