如何将元素的第一个字符存储在字符串中?例如 . 如果我跑
for (j=0; j < 5; j++) {
printf("%s\n, string[j]);
}
我明白了
hello
how
are
you
感谢@He提供的答案,我知道我可以运行 printf("%c\n, string[j][0]);
来打印第一个字母:
h
h
a
y
但是,如何将第一个字母存储在新数组中?到目前为止,我有:
char secondStr[10];
for (j=0; j<5; j++) {
secondStr[j] = string[j][0];
}
这会导致错误 assignment makes pointer from integer without a cast
我知道这个问题与我之前提出的问题略有不同(关于打印第一个元素) - 我不确定是否要问一个关于SO的全新问题 . 如果我应该问一个新问题,我会提前道歉 .
3 回答
如果string是std :: string,那么:
应该说 .
有很多选择 . 我只想提一些 .
您可以浏览字符串的成员函数并将其用于您的目的
当你有一个指向char
*string1[] = {"hello", "how", "are", "you"};
的指针数组并且你想要打印它的第一个字符串hello
所以你必须使用%s
作为字符串,如printf("%s",string1[0])
但如果你想打印第一个字符串的第一个字符串,你需要使用%c
之类的这printf("%c",string1[0][0])
.正如您在上面的代码中看到的那样,您需要使用
%c
重新发送%s
.编辑
然后,您将需要为新字符串分配内存 .