21xrx.com
2024-11-24 18:14:41 Sunday
登录
文章检索 我的文章 写文章
C++如何输入一个未知长度的字符串?
2023-07-13 12:24:41 深夜i     --     --
C++ 输入 未知长度 字符串

在C++中,我们通常使用cin来输入字符串,但是cin只能输入固定长度的字符串。对于未知长度的字符串输入,我们可以使用getline函数或者自己实现一个循环输入的函数。

1. 使用getline函数

getline函数可以从输入流中读取一行字符串,其函数原型为:


istream& getline (istream& is, string& str, char delim);

其中,is表示输入流,str表示存储读取的字符串,delim表示行结束符,默认为‘\n’。

使用getline函数输入未知长度的字符串只需要不断读取新的一行,直到读到结束标志为止。下面是一个例子:


#include <iostream>

#include <string>

using namespace std;

int main(){

  string str="";

  string temp;

  while(getline(cin,temp)){

    str += temp;

  }

  cout<<str<<endl;

  return 0;

}

这个程序会不断读取输入,直到读到EOF为止,将所有读取到的字符串拼接起来输出。

2. 编写循环输入函数

我们也可以自己实现一个循环输入的函数。我们可以使用cin.get()函数逐个读取输入的字符,直到读到结束标志为止。下面是一个例子:


#include <iostream>

using namespace std;

void inputString(char * str){//使用指针的方式输入字符串

  char ch=cin.get();

  int i=0;

  while(ch!='\n'&&ch!=EOF){

    str[i++]=ch;

    ch=cin.get();

  }

  str[i]='\0';

  return;

}

int main(){

  char str[100];

  inputString(str);

  cout<<str<<endl;

  return 0;

}

这个程序会不断读取输入,直到读到行末为止,将读取到的字符串输出。需要注意的是,这种方式只适用于字符数组作为输入字符串的情况,无法适用于string类型的字符串输入。

总之,C++提供了多种方式输入字符串,对于未知长度的字符串输入可以使用getline函数或自己实现一个循环输入的函数。选择哪种方式取决于具体情况。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复