如何访问指针数组中字符串的各个元素
How can i access individual elements of a string in an array of pointers?
#include<iostream>
using namespace std;
main()
{
char *p[4] = {"arp","naya","ajin","shub"};
cout<<*p[2]; // How is this printing 'a'
// how can i print the elements of each of the 4 strings
// except the first character
}
访问http://cpp.sh/7fjbo我在理解用字符串处理指针时遇到了很多问题。如果你能提供帮助,请发布一些额外的链接。我最关心的问题是不支持使用带指针的数组。
p[2]是指向"ajin"
的第一个元素的指针。当你取消引用它时,你会得到a
。如果你想打印所有的,使用指针本身
cout << p[2];
如果您想跳过第一个字符,请将指向第二个字符的指针传递给cout,即
cout << p[2] + 1;
这里,p
基本上是数组长度为4的字符串指针数组。
*p[2]
与p[2][0]
相同
p[2]
与"从索引0
开始打印,直到编译器找到' '
"相同
p[2] + i
与"从索引i
开始打印,直到编译器找到' '
">
除了Armen的答案之外,还有更多信息可以让您更好地理解。
C++是而不是正是C;它是一种强类型语言。在C中,使用char *
表示以null结尾的字符串。但实际上,它意味着是指向字符类型的指针。C++是强类型的,正在调用
std::ostream& std::ostream::operator<<(std::ostream& cout, char);
带有
cout << *p[2];
因为第二操作数是CCD_ 13类型。
在C++中,您可能希望使用std::string
而不是char*
,因为前者更安全,界面更简单。有关详细信息,您可以参考C++中为什么您更喜欢char*而不是字符串?
相关文章:
- 将指针作为缓冲区传递到第一个字符串元素
- C++字符串问题-如何访问字符串元素
- 反转由空格分隔的字符串元素将返回比原始字符串更大的字符串
- 将向量元素与字符串元素进行比较,而不初始化向量
- 如何获取数组中字符串元素的字符数?[C++]
- 如何删除在没有STL的队列中存储在数组中的第一个字符串元素
- 比较两个向量的<Structs>字符串元素
- 将字符串元素转换为整数 (C++11)
- 如何使操作员返回引用字符串元素
- 访问字符串元素地址
- 第一个字符串元素的地址产生意外结果
- 在C 中的字符串向量的字符串元素中循环遍历所有字符
- 将字符串元素分配给结构数组中的结构
- C++检查字符串元素的相等性
- 将字符串元素转换为整数C++
- 试图将字符串元素与循环和索引进行比较,但索引不会增加
- C++ - 链表插入排序(字符串元素)
- C++将二维C字符串元素传递到函数中
- 从字符串元素中获取字符串
- 比较列表<string>和向量<string>中的字符串元素