繁体   English   中英

C 中的字符指针问题

[英]Trouble with char pointers in C

我有一个指向字符数组 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 包含在 bar 中唯一的字符数组。 例如,我希望 bar[0] 等于 "a"、bar[1] = "b"、bar[2] = "d" 等。但是当我将 bar[0] 设置为 foo[0] 时,bar[ 0] = "abbdefg" 和 bar[1] = "bbdefg" 等等。

我知道如何用 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”,因为它只适合一个字符。 最有可能的是,您不小心打印了 bar 中的所有字符,而不仅仅是 bar[0],使用 %s 而不是 %c。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM