gpt4 book ai didi

c - C 中 char 指针的问题

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

我有一个指向字符数组 foo 的指针

char *foo = "abbdefg";

和一个常规字符数组栏。

char bar[10];

bar 保存 bar 中唯一的字符数组。例如,我希望 bar[0] 等于“a”,bar[1] =“b”,bar[2] =“d”等。但是,当我将 bar[0] 设置为 foo[0] 时,bar[ 0] = "abbdefg"和 bar[1] = "bbdefg"等等。

我知道如何用 printf 打印我想要的内容

printf("%c", foo[0]);

给一个和

printf("%c", foo[1]);

给出 b,但我不知道如何做相当于将 bar[0] 设置为“a”而不是“abbdefg”。

任何建议都会很有帮助,谢谢。

最佳答案

我认为你混淆了字符和字符串。

bar holds an array of characters that are unique in bar. For example I want bar[0] to equal "a", bar[1] = "b", bar[2] = "d", etc. However When I set bar[0] to foo[0], bar[0] = "abbdefg" and bar[1] = "bbdefg" and so forth.

I know how to print what I want with printf

bar[0] 不能等于 "a" 因为 bar[0] 是一个字符,而“a”是一个字符串(在本例中是两个字符的数组)。 bar[0] 可以等于 'a',即字母 a。 bar[1] 可以等于“b”,bar[2] 可以等于“d”,依此类推。

当您将 bar[0] 设置为 foo[0] 时,使用 bar[0] = foo[0]; 例如,bar[0] 现在包含“a”。 bar[1] 仍然保留它之前持有的内容。

bar[0] 肯定不能容纳“abbdefg”,因为它只适合一个字符。最有可能的是,您使用 %s 而不是 %c 意外地打印出了 bar 中的所有字符,而不仅仅是 bar[0]。

关于c - C 中 char 指针的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53621611/

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