c - Strcpy 索引输出

标签 c

我试图用这段代码来解决这个问题,但索引似乎对我不起作用..

#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[])
{
    char *a = "abcde";
    char *b = "vwxyz";
    char s[10];

    strcpy(s,a+0);
    printf("%s\n",s);

    strcpy(s+1,b);
    printf("%s\n",s);
    return 0;
}

希望有人能解释一下,因为第一个 strcpy 结果是 abcde。对于 s[1] 来说,这将是字母“b”,那么它不是 abvwxyz 吗?但正确的结果是 avwxyz。

最佳答案

wouldn't it be abvwxyz?

没有。它将给出 avwxyz 作为输出。 s+1 指向数组s的第二个元素(衰减后),即b。复制将从字母b开始。 bv 覆盖。

关于c - Strcpy 索引输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21446438/

相关文章:

c - 在 gdb 中打印以 NUL 开头的字符串

c - 解释一下为什么代码编译成功

c - 使用命令行参数的 execvp 出现段错误

c - 如何将文件中的 bool 值加载到 C 中的数组中?

c - 回复 : check for every X increment in C

c - 如何让我的程序提示用户输入并使用函数将其存储到数组中?

c++ - 什么是可重入函数?

c - 在 C 中将 Number 拆分为高位和低位字

在 C 中将大写字母转换为小写字母..(具有挑战性的)

c# - 将 C 应用程序与 WPF 集成