C++怎么给字符串数组定义长度?

来源:百度知道 编辑:UC知道 时间:2024/05/29 15:03:33
#include<iostream>
#include<string>
using namespace std;
int main()
{string a[3];//怎么定义一个定符串的长度?
int i;
for(i=0;i<3;i++)
cin>>a[i]>>" ";
cout<<endl;
return 0;
}
请帮我解答下.
就像用组数定义字符一样.char a[10]这就是定义a有10个字符长度,而我所写是string a[3]是定义三个字符串,而没有定义每个字符串的长度,这应该怎么定义呢?要用到指针吗?指针还没学到那所以不清楚.

字符串数组~~
其实数组就是根据类型 来分配内存空间的!!
类型*你定义的个数=内存上所占的空间大小

?(你这里定义长度是指字符的个数吗? 那就是根据你定义的时候 的下标.)
内存在栈区 分配了你定义的大下 当运行的时候才真正的给他分配空间.

至于yl02520 提到的动态分配是 用到了 MALLOC (c) 或是NEW (c++) 在堆区上 动态分配内存空间,但注意要释放空间.其实你定义 也算是动态,但是是个伪动态.真正的动态是在堆区上的!!

内存 有栈区;静态区;堆区;代码区.
我不清楚你要问什么?具体的问题补充下! 有时间给你 查查资料~~~

你这定义的是字符数组,每个元素又是一个不定长度的字符串,这样是无法定义长度的.

用指针吧.
例:
char *pStr=new char[10];

string 这是经过加工的新类型 多是一个模板类
你也不用去处理字符串的长度
在进行string操作时都已经做好了

你的意思是要根据输入的数字多少来定义字符串的大小吗?
c++中数组都是预先定义的,定义了就不能改变大小。
如果要实现数组大小变化的话,就只能用指针了,
可以动态分配内存大小,一般都是这么用

用:strlen

string a[]