21xrx.com
2025-06-22 00:50:22 Sunday
文章检索 我的文章 写文章
C++如何输入一个未知长度的字符串?
2023-07-13 12:24:41 深夜i     91     0
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函数或自己实现一个循环输入的函数。选择哪种方式取决于具体情况。

  
  

评论区