C++中,如何输入一个任意长度的字符串
我想定义一个动态字符指针来输入任意长度的字符串,形如char*s=newchar[];但这样长度超过一定数量就会出错。我该怎么写这样的程序呢。谢谢。不好意思,一定要用ch...
我想定义一个动态字符指针来输入任意长度的字符串,
形如char *s=new char[];但这样长度超过一定数量就会出错。我该怎么写这样的程序呢。谢谢。
不好意思,一定要用char,一楼也太贪心了吧,这又不是很复杂,要是成功了加20分。 展开
形如char *s=new char[];但这样长度超过一定数量就会出错。我该怎么写这样的程序呢。谢谢。
不好意思,一定要用char,一楼也太贪心了吧,这又不是很复杂,要是成功了加20分。 展开
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;
}
手动输入一个未知长度的字符串.
通常我们会申请一个足够大的内存空间,来保证不超出存储范围:
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;
}
展开全部
C++用 string 库。
#include <iostream>
#include <string>
using namespace std;
void main()
{
string str;
cin>>str; //随便你多长
cout<<str<<endl;
}
如果真要用char *实现可以再联系
#include <iostream>
#include <string>
using namespace std;
void main()
{
string str;
cin>>str; //随便你多长
cout<<str<<endl;
}
如果真要用char *实现可以再联系
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个在C++里面用char 就是这样,必须得定义最大的长度数,根据我们使用的习惯,我们一般可以估计这个长度大小,比如姓名,我们可以定义char str[20].
但也可以自己写字符类去实现,动态分配!
但也可以自己写字符类去实现,动态分配!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++用
string
库。
#include
<iostream>
#include
<string>
using
namespace
std;
void
main()
{
string
str;
cin>>str;
//随便你多长
cout<<str<<endl;
}
如果真要用char
*实现可以再联系
string
库。
#include
<iostream>
#include
<string>
using
namespace
std;
void
main()
{
string
str;
cin>>str;
//随便你多长
cout<<str<<endl;
}
如果真要用char
*实现可以再联系
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用链表嘛,如果是char的话任意长度有点困难,我不是高手,等高手来吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询