首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新手字符数组有关问题

2012-10-21 
新手求助字符数组问题C/C++ code#include iostream using namespace stdintmain(){int ichar a[10]co

新手求助字符数组问题

C/C++ code
#include <iostream >using namespace std;int  main(){    int i;    char a[10];    cout<<"请输入不超过10个字符 ";    cin>>a;    for (i=0;i<10;i++)       cout<<a[i];     system("pause");    return 0;}


如上的程序先规定了用来储存字符的数组长度为10.想请教一下如果我想不归定字符数组的长度.然后根据输入的字符数来确定字符数组长度.应该怎么写????

[解决办法]
最好使用string对象,自动管理内存,非常方便,
是C++中对C语言中字符数组的替代产品。

如果一定要使用字符数组的话,
需要自己管理内存,自己添加结束标记等等。

两者转换如下:

C/C++ code
#include <iostream>#include <string>using namespace std;int main(){    string str;    cin >> str;               //可以输入一个字符串, 遇到空白字符停止,空白字符包括空格,tab,回车    int len = str.size();      //计算长度    char *pStr = new char[len+1];     //动态申请内存,多一个字节用来放结束符    //拷贝数据到字符数组中    for( int i=0; i<len; i++)        pStr[i] = str[i];    pStr[len]='\0';            //注意末尾要加结束符    //也可以使用函数    strcpy( pStr, str.c_str() );    //.c_str()函数可以把string对象转换成c语言的字符数组                                //不过不可以修改,否则会破坏string对象,所以拷贝到其他地方    //输出    cout << str << endl;    cout << pStr << endl;    string str1 = pStr;      //可以很方便的把字符数组转换成string对象    cout << str1;    delete[] pStr;            //释放内存} 

热点排行