C++中,如何输入一个任意长度的字符串

我想定义一个动态字符指针来输入任意长度的字符串,形如char*s=newchar[];但这样长度超过一定数量就会出错。我该怎么写这样的程序呢。谢谢。不好意思,一定要用ch... 我想定义一个动态字符指针来输入任意长度的字符串,
形如char *s=new char[];但这样长度超过一定数量就会出错。我该怎么写这样的程序呢。谢谢。
不好意思,一定要用char,一楼也太贪心了吧,这又不是很复杂,要是成功了加20分。
展开
 我来答
许诗文00
推荐于2017-09-03 · TA获得超过4291个赞
知道小有建树答主
回答量:425
采纳率:100%
帮助的人:26.7万
展开全部
一个“很简单”的问题,折磨到头疼:

手动输入一个未知长度的字符串.

通常我们会申请一个足够大的内存空间,来保证不超出存储范围:

char* input=new char[100];

cin>>input;

此时申请到一个长度为100的字符数组并输入。

如果不想申请固定大小的空间,本人写了如下的程序:

char* input=new char(); //圆括号中是初始化参数

cin>>input;

int
main(int argc, char** argv)
{
int strLen = 5;
char ch;
char* str =
(char*)malloc(sizeof(char*) * strLen);
int count = 0;
printf("Please input
a string: ");
do
{
ch = getchar();
count++;
if (count >=
strLen)
{
str = (char*)realloc(str, sizeof(char*) *
(++strLen));
}
str[count-1] = ch;
} while (ch != '\n');
str[count] =
'\0';
puts(str);
return 0;
}
ziguowen
推荐于2017-09-24 · TA获得超过2723个赞
知道小有建树答主
回答量:785
采纳率:35%
帮助的人:349万
展开全部
C++用 string 库。

#include <iostream>
#include <string>
using namespace std;

void main()
{
string str;
cin>>str; //随便你多长
cout<<str<<endl;
}

如果真要用char *实现可以再联系
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友edd6353bd
2009-03-21 · TA获得超过1162个赞
知道小有建树答主
回答量:2513
采纳率:0%
帮助的人:1427万
展开全部
这个在C++里面用char 就是这样,必须得定义最大的长度数,根据我们使用的习惯,我们一般可以估计这个长度大小,比如姓名,我们可以定义char str[20].

但也可以自己写字符类去实现,动态分配!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
野冠邬友菱
2019-11-11 · TA获得超过3422个赞
知道大有可为答主
回答量:3137
采纳率:26%
帮助的人:179万
展开全部
C++用
string
库。
#include
<iostream>
#include
<string>
using
namespace
std;
void
main()
{
string
str;
cin>>str;
//随便你多长
cout<<str<<endl;
}
如果真要用char
*实现可以再联系
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tangyi2911
2009-03-21
知道答主
回答量:27
采纳率:0%
帮助的人:16.9万
展开全部
用链表嘛,如果是char的话任意长度有点困难,我不是高手,等高手来吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式