C 编程,为什么我不能将 strcpy() 与索引一起使用?

标签 c

这是一个例子:

int main()
{
    char string1[8];
    char string2[7];
    strcpy(string1, "Heloooo");
    strcpy(string2, "Helloo");
    printf("%d", strcmp(string1[2], string2[5]));
    return(0);
}

不会返回任何内容,即使它应该返回 >0、0 或 <0。如果我删除索引,例如:

    printf("%d", strcmp(string1, string2));

它会工作得很好。有人可以告诉我我在这里做错了什么吗?

最佳答案

strcmp 接受一对字符指针,而 string1[x] 不是指针,而是字符:

printf("%d", strcmp(&string1[2], &string2[5]));

printf("%d", strcmp(string1+2, string2+5));

请注意,虽然 string1string2 是数组,但 C 编译器会将它们转换为字符指针,而无需额外的运算符。

关于C 编程,为什么我不能将 strcpy() 与索引一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47734337/

相关文章:

c - 为什么我的 C 程序的输出不正确?

C malloc() 在 linux 上抛出错误,而不是在 mac 上

我可以避免在现代操作系统中释放 C 中分配的内存吗?

c - 在 C 中使用指针交换值

c - 在 ubuntu 中为 procmon 制作时出错

c - 如何构建具有相似名称的多个目标?

c - 用 C 语言为 LC3 汇编器编写自定义分词器

c - 无需 inet.h 可移植地读取大端数据

c - 尝试在 C 中引用值时出现 LValue 错误

c - 如何从 clang 获取更细粒度的行/列调试信息?