【发布时间】:2021-11-18 18:54:48
【问题描述】:
char cstri[] = "hello world";
从这里,有什么方法可以从这个cstring中获取一个字符,比如第一个e,位置在1?
我尝试了几次,每次都返回从传递的索引开始的整个字符串。所以,如果我想要 'e',位置为 1,它会返回 ello world 而不仅仅是 e。
我还尝试使用 strncpy() 和 memcpy() 从字符串中复制单个字符,但它会将字符串从索引 0 复制到 null,或者只是指定的数量。
strncpy(b, cstri , 1);
我知道 cstring 是只读的,但是没有办法从 cstring 中获取单个字符吗?
我想用printf(),所以我不能用char b = cstri[1]
【问题讨论】:
-
对于初学者,
char cstri = "hello world";无法编译。 "想用 printf 所以我不能用 char b = cstri[1]" 你绝对可以。有%c用于打印单个字符。 -
@HolyBlackCat 抱歉,我在 cstri 之后忘记了 []。
-
如果你想编写 C++ 程序,你为什么要摆弄所有这些 C 的东西?不是你不能,你不应该。 ;-)
-
"如果我想要 'e',位置为 1,它会返回 hello world 而不仅仅是 'e'。" - 那么你可能正在做
cstri + 1当你应该做cstr[1]或*(cstr + 1)。您应该考虑显示代码,如果没有,至少显示其中的一部分。我说你至少得到一个good C++ book 以了解该语言的工作原理。 -
printf("%c", cstr[1]);或printf("%c", *(cstr + 1));?更好的是,std::cout << cstr[1];