C语言字符串数组中的每一个元素均为指针,即有诸形如“ptr_array[i]”的指针。由于数组元素均为指针,因此ptr_array[i]是指第i+1个元素的指针。
例:如二维指针数组的定义为:char *ptr_array[3]={{"asdx","qwer","fdsfaf"},{"44444","555","6666"},{"a78x","q3er","f2f"}};
扩展资料
字符串数组数组元素表示方法:
数组元素的一般形式为:数组名[下标] 其中的下标只能为整型常量或整型表达式。如为小数时,C编译将自动取整。
例如,a[5],a[i+j],a[i++]都是合法的数组元素。数组元素通常也称为下标变量。必须先定义数组, 才能使用下标变量。在C语言中只能逐个地使用下标变量, 而不能一次引用整个数组。
参考资料来源:百度百科—指针数组
#include
#include
int main()
{
using namespace std;
string str[3] = {"ert","asd", "cvb"};
for(int i = 0; i < 3; i ++)
{
cout<
}
运行这段程序就可以了,是在vs2008上测试过。注意两个地方
1.#include
2.using namespace std;
千万不要include string.h啦,string.h是C里的字符串库,而string是C++库,两者没有关系。这要弄明白连个库有什么不同,在网上搜搜就有。
C++里的String是包含在std命名空间里的,所以要加上第二句。
方法1, 使用指针数组:
#include
#include
#include
int main()
{
char *test[]={ "this is a test ", "test 2 ", " "};
int i=0;
while(strcmp(test[i], " ") != 0)
puts(test[i++]);
system( "PAUSE ");
return 0;
}
这个方法比较简单, 但是问题是这样的话,字符串是常量,无法修改。当然这个问题也可以解决, 比如使用数组赋值, 然后将 char 数组首地址赋值给某一个指针即可。
方法2,使用2维数组:
#include
#include
#include
int main()
{
char test[][20]={ "this is a test ", "test 2 ", " "};
int i=0;
while(strcmp(test[i], " ") != 0)
puts(test[i++]);
system( "PAUSE ");
return 0;
}
这样的话, 问题就是 空间的浪费!
没有字符串数组,只有字符数组。
如以下的定义:
char c[6]={"HELLO"}
char c[10]={'I',' ','a','m','','h','a','p','p','y'};
char c[]={'I',' ','a','m','','h','a','p','p','y'};
#include
#include
int main()
{
using namespace std;
string str[3] = {"ert","asd", "cvb"};
for(int i = 0; i < 3; i ++)
{
cout<
}
运行这段程序就可以了,是在vs2008上测试过。注意两个地方
1.#include
2.using namespace std;
千万不要include string.h啦,string.h是C里的字符串库,而string是C++库,两者没有关系。这要弄明白连个库有什么不同,在网上搜搜就有。
C++里的String是包含在std命名空间里的,所以要加上第二句。