1. 程式人生 > >C++如何輸入含空格的字串

C++如何輸入含空格的字串

1、scanf函式(包含標頭檔案#include <stdio.h>)

   scanf函式一般格式為scanf(“%s”,st),但scanf預設回車和空格是輸入不同組之間的間隔和結束符號,所以輸入帶空格,tab或者回車的字串是不可以的。解決方法如下: 1)利用格式符“%[]”它的作用為掃描字元集合。Scanf(“%[^c]”,str); 其中“c”是一個具體的字元常量(包括控制字元)。當輸入字串時,字元“c”將被當作當前輸入的結束符。利用此格式符就可以由程式設計者自己指定一個輸入結束符。例如:scanf("%[a-z A-Z0-9]",str)表示只匹配輸入是大小寫字母和數字,遇到非數字和字母時輸入結束。例如:

int main()

{
    char st[50];
   scanf("%[^\n]",st);// \n作為字串輸入的結束符
   printf("%s",st);
    return 0;
}

2. cin(包含標頭檔案#include <iostream>)

cin是C++中最常用的輸入語句,當遇到空格或者回車鍵即停止。無法解決

3. gets()

可以無限讀取,以回車結束讀取,C語言中的函式,在C++中執行會產生bug。C11標準中已被正式刪除,建議不要用!!!

4. getline()(包含標頭檔案#include <string>)

若定義變數為string型別,注意不是字元型陣列

。則要考慮getline()函式。用法如下:

int main()

{

         string st;

         getline(cin,st);

        cout<<st<<endl;

        return0;

}

4.cin.get (char *str, int maxnum)

cin.get()函式可以接收空格,遇回車結束輸入。

int main()

{

         char st[50];

        cin.get(st,50);

        cout<<a<<endl;// 輸出也可以用printf("%s",st);

        return0;

}

5.cin.getline (char *str, int maxnum)(包含標頭檔案#include <string>)

cin.getline()函式可以同cin.get()函式類似,也可接收空格,遇回車結束輸入。

int main()

{

         char st[50];

        cin.getline(a,50);

        cout<<a<<endl; // 輸出也可以用printf("%s",st);

        return0;

}

6. 字串型別轉換為字元陣列

(a)c_str()

        char p[50];

         string str="I Love Ningbo!";

      strcpy(p,str.c_str());

      printf("%s",p);

(b)data()
          char p[50];

         string str="I Love Ningbo!";

      strcpy(p,str.data());

      printf("%s",p);

相關推薦

C++如何輸入空格字串

1、scanf函式(包含標頭檔案#include <stdio.h>)   scanf函式一般格式為scanf(“%s”,st),但scanf預設回車和空格是輸入不同組之間的間隔和結束符號,所以輸入帶空格,tab或者回車的字串是不可以的。解決方法如下: 1)利用格

關於C語言中用scanf語句輸入帶有空格字串問題

比如輸入I am your friend,然後倒序輸出:輸入語句scanf("%[^\n]",x.a);  C語言中scanf()函式提供的“%[]”格式串可以用來進行多個字元的輸入,並對結束符進行自定

C++輸入空格字串

某次刷題的時候,要求輸入一個字串(含空格),然後對其進行操作,後來發現用cin輸入是有bug的。 在輸入的過程中,當遇到第一個空格,即輸入完畢或者是字串讀取完畢。 #include<iostream> using namespace std;

C# 輸入空格隔開的數字 比較其大小

string s = Console.ReadLine(); string [] arr= s.Split(' '); //返還由' '隔開的字串 int[] arr

string不能輸入空格,如何輸入空格字串

第一種方法: char t[50]; cout<<"input a string:"<<endl; gets(t); for(i=0;t[i]!='\0';) 方法第二種:string str; char c; cout<<"

C++如何連續輸入多個可能空格字串

可以嘗試如下方案,親測可行。 int main() { string s1,s2; while(getline(cin,s1)&&getline(cin,s2))

C++如何輸入多行字串(空格)

我們要實現這樣的功能: 輸入一個整數n,表示接下來要輸入n行字串,每一行字串帶有空格,按回車表示結束該行的輸入 程式1: #include <iostream> #include <string> using namespace std; int

C/C++中輸入空格字串用法總結

(1)gets(char *str)     需要包含標頭檔案#include <stdio.h> (2)scanf("%[^\n]]",str)     需要包含標頭檔案#include <stdio.h>

C語言輸入空格字串

用scanf("%s",array); 的話遇到空格就停止接收後面的字元了,那怎麼才能接收帶空格的字串呢? 1.用 gets() ,它可以接收帶空格的字串, 直到回車才結束輸入 char buf[80]={0};  gets(buf);   //可以讀取空格, 回車結

c#輸入一個字串,並把字串的第一個字元變為大寫,如果字串中有空格則把空格的下個字元變為大寫之後輸出

using System; using System.Collections.Generic; using System.Text.RegularExpressions; delegate int MyDelegate();//相當於c函式指標 namespace c

C++連續輸入空格字串

測試檔案 測試1 #include <stdio.h> #include <iostream> #include <string> using namespa

C++ 輸入一行數字或字串(未知個數),以空格間格,換行後結束輸入並輸出

說明:通過getchar()來判斷是否是\n來終止輸入 方法一: 一行中輸入多個數字並以空格間隔,通過int陣列儲存 #include<iostream> #include<string.h> #include<stdio.h> u

C語言(三 字串、結構體、共用體、輸入輸出)

字串 字串是儲存了一些字元,最後以null(’/0’)結尾的一維字元陣列。 char str[6] = {'h','e','l','l','o','/0'}; char str[ ] = "hello" ; 還有一些字串操作函式: 1、strcpy(s1,s2) 複製s2到s1 2

劍指offer(一):替換空格 字串 C語言

題目:    替換空格 請實現一個函式,將一個字串中的空格替換成“%20”。 例如,當字串為We Are Happy.則經過替換之後的字串為We%20Are%20Happy。 思路1:建立兩個陣列 ,一個存放原來的,一個存放替換後的  時間複雜度過高O(n^2

c語言網-1477-字串輸入輸出函式

題目描述 編寫函式GetReal和GetString,在main函式中分別呼叫這兩個函式。在讀入一個實數和一個字串後,將讀入的結果依次用printf輸出。 兩次輸入前要輸出的提示資訊分別是" please  input  a  number:\n”和" please 

C語言 將連續輸入空格以一個空格輸出

#include<stdio.h> #define NONBLANK 'a' main( ) { int c,lastc; lastc = NONBLANK; while((c = getchar( ) )!= EOF ) {

如何在scanf中輸入空格字串

寫聊天室時,想輸入帶有空格的字串(個性簽名) C語言中scanf()函式提供的“%[]”格式串可以用來進行多個字元的輸入,並對結束符進行自定義。 對於%[]還可以用^+任意字元(包括 eof)來結束字串的輸入,如%[^EOF]就是直到有EOF 輸入,字串才中止。參考程式碼:

C語言】輸入三個字串,由小到大排序輸出。

仔細觀察下面程式: #include <stdio.h> #include <string.h> void swap(char *p1,char *p2) { char *ret = p1; p1 = p2;

scanf()函式實現輸入帶有空格字串

我們用scanf()函式輸入一個帶空格的字串時,經常會在第一個空格時就停止輸入。 下面有兩種方法可以完整輸入字串 1)利用strcat()函式來實現帶空格字串的輸入,可以用字串追加函式strcat()來連線每個單詞。  Strcat()一般格式:char*strcat(char*dest,const cha