国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C/C++ 中輸入字符串的幾種方式

這篇具有很好參考價值的文章主要介紹了C/C++ 中輸入字符串的幾種方式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

C/C++ 中輸入字符串的幾種方式:

scanf,cin,getline,getchar,cin.get,cin.getline

C/C++ 中字符串大致是以下兩種:

  1. char a[n] 字符數(shù)組類型

  1. string 字符串類型


1.scanf

scanf 只能接收一個字符數(shù)組,遇 “空格”“回車”都結束

#include <iostream>
using namespace std;

int main() {
    char s[10];
    scanf("%s", s);
    cout << s;
    return 0;
}

輸入:ab c 遇到空格結束
輸出:ab

輸入:ab[回車]c
輸出:ab

2.cin

cin 最常用、最基本的用法,遇 “空格”“回車”都結束

示例一:接收字符數(shù)組

#include <iostream>
using namespace std;

int main() {
    char s[10];
    cin >> s;
    cout << s;
    return 0;
}

輸入:ab c 遇到空格結束
輸出:ab

輸入:ab[回車]c
輸出:ab

示例二:接收string字符串

#include <iostream>
using namespace std;

int main() {
    string s;
    cin >> s;
    cout << s;
    return 0;
}

輸入:ab c 遇到空格結束
輸出:ab

輸入:ab[回車]c
輸出:ab

3.getline

getline 接收一個string字符串,可以接收空格并輸出,需包含“#include<string>”頭文件

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

int main() {
    string s;
    getline(cin, s);
    cout << s;
    return 0;
}

輸入:ab c 可以接收空格并輸出
輸出:ab

輸入:ab[回車]c
輸出:ab

和cin.getline()類似,但是cin.getline()屬于istream流,而getline()屬于string流,是不一樣的兩個函數(shù)

4.getchar

getchar() :接收一個字符,需包含 "#include<string>" 頭文件

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

int main () {
    char ch;
    ch = getchar(); //不能寫成getchar(ch);
    cout << ch << endl;
    return 0;
}

輸入:abcabc
輸出:a

5.cin.get

用法一:cin.get(字符變量名)可以用來接收字符

#include <iostream>
using namespace std;

int main () {
    char ch;
    ch = cin.get(); //或者cin.get(ch);只能獲取一個字符
    cout << ch << endl;
}

輸入:abc
輸出:a

用法二:cin.get(字符數(shù)組名,接收字符數(shù))用來接收一行字符串,可以接收空格

#include <iostream>
using namespace std;

int main () {
    char a[20];
    cin.get(a,20); //有些類似getline??梢暂斎攵鄠€單詞,中間空格隔開。
    cout<<a<<endl;
}

輸入:abc abc abc
輸出:abc abc abc

輸入:abcdeabcdeabcdeabcdeabcde (輸入25個字符)
輸出:abcdeabcdeabcdeabcd (接收19個字符+1個'\0')

用法三:cin.get(無參數(shù))沒有參數(shù)主要是用于舍棄輸入流中的不需要的字符, 或者舍棄回車, 彌補cin.get(字符數(shù)組名,接收字符數(shù)目)的不足

#include <iostream>
using namespace std;
 
int main() {
    char arr[10];
    cin.get(arr,10);
    cin.get();//用于吃掉回車,相當于getchar();
    cout << arr << endl;
    cin.get(arr,5);
    cout << arr << endl;
    return 0;
}
 
輸入:abcdefghi
輸出:abcdefghi
輸入:abcde
輸出:abcd
請按任意鍵繼續(xù)


#include <iostream>
using namespace std;
 
int main() {
    char arr[10];
    cin.get(arr,10);
    //cin.get();//用于吃掉回車,相當于getchar(); 現(xiàn)在把這行注釋掉試試看
    cout << arr << endl;
    cin.get(arr,5);
    cout << arr << endl;
    return 0;
}
 
輸入:abcdefghi
輸出:abcdefghi
請按任意鍵繼續(xù)

6.cin.getline

cin.getline(): 接收一個字符串,可以接收空格并輸出文章來源地址http://www.zghlxwxcb.cn/news/detail-569009.html

#include <iostream>
using namespace std;

int main () {
    char a[20];
    cin.getline(a,5); //與上面基本相同。
    cout << a << endl;
    return 0;
}

輸入:jkljkljkl
輸出:jklj

接受5個字符到a中,其中最后一個為'\0',所以只看到4個字符輸出

7.gets

在提交問題時,不少接收字符串的時候可以用gets函數(shù)(以前確實可以),但由于get函數(shù)不提供給出足夠長的輸入字符串時,避免目標數(shù)組緩沖區(qū)溢出的手段。 
std::gets 于 C++11 被棄用,并于 C++14 移除。

可使用 std::fgets 替代。也就是說現(xiàn)在只要用C++11及以后版本的標準,gets函數(shù)都不能再用了


不過,我們可以使用
#define gets(S) fgets(S,sizeof(S),stdin) 作為兼容性宏替換。

到了這里,關于C/C++ 中輸入字符串的幾種方式的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 常用的將Java的String字符串轉具體對象的幾種方式

    常用的將Java的String字符串轉具體對象的幾種方式

    Java對象以User.class為例 ,注意:代碼中使用到了lombok的@Data注解 以上就是常用的幾種String轉具體的java對象操作

    2024年04月11日
    瀏覽(40)
  • C#刪除字符串最后一個字符的幾種方法

    字符串:string s = \\\"1,2,3,4,5,\\\" 目標:刪除最后一個 \\\",\\\" 方法一: s = s.Remove(s.LastIndexOf(\\\",\\\"), 1); ;?//移除掉最后一個\\\",\\\" 方法二:用的最多的是Substring,這個也是我一直用的 s = s.Substring(0,s.Length - 1) 方法三:用TrimEnd,這個東西傳遞的是一個字符數(shù)組 s=s.TrimEnd(\\\',\\\') //如果要刪除\\\"5,\\\",則需

    2023年04月21日
    瀏覽(17)
  • JAVA 截取字符串的幾種方法

    主要有以下幾種方法: 1、通過subString()方法來進行字符串截?。ㄗ畛S茫?2、通過StringUtils提供的方法 3、split()+正則表達式來進行截取 1、通過subString()方法來進行字符串截取,返回字符串中的子字符串,在java中有兩種用法 第一種,傳遞一個參數(shù): 第二種,傳遞兩個參數(shù):

    2024年02月10日
    瀏覽(19)
  • Java中去除字符串空格的幾種方法

    1、String.trim(): 它去掉的只是String首尾空格,內部不處理; 2、str.replace(\\\" \\\", “”): 去掉所有空格,包括首尾、中間,但是又僅僅局限于一個空格 3、str.replaceAll(\\\" +\\\",\\\"\\\") : 可以匹配去掉所有空格 4、str.replaceAll(\\\"s*\\\", “”): 可以替換大部分空白字符, 不限于空格 s 可以匹配空

    2024年02月01日
    瀏覽(18)
  • fastjson json字符串轉map的幾種方法

    參考:fastjson將json字符串轉化成map的五種方法 - 何其小靜 - 博客園 (cnblogs.com) 源碼: 第一種 Map maps = (Map)JSON.parse(str); 第二種 Map mapTypes = JSON.parseObject(str); JSONObject實現(xiàn)了Map,所以可以用Map接收?

    2024年02月16日
    瀏覽(20)
  • List轉換String字符串幾種方式

    1、傳統(tǒng)循環(huán)并拼接的方式 2、Java8 String.join()? StringUtils.join() 和 String.join()用途:將數(shù)組或集合以某拼接符拼接到一起形成新的字符串。 這里和StringUtils.join()有區(qū)別,參數(shù)順序不一樣,另外,StringUtils.join()可以傳入Integer或者其他類型的集合或數(shù)組,而String.join()盡可以傳入實

    2024年02月14日
    瀏覽(32)
  • 關于C++的數(shù)組或者字符串的輸入問題

    一、數(shù)組輸入: 1:數(shù)組個數(shù)未知 2:數(shù)組個數(shù)已知 (1) vector int num(N,1); //表示N個數(shù)組元素且初始值都為1; (2) vector int num; 3:動態(tài)數(shù)組 二、字符串輸入 1:多個字符串string: 2:單個單詞 2.1 單詞或者句子拆成一個個字母 或者:

    2024年02月11日
    瀏覽(15)
  • C語言:數(shù)組、字符串知識點整理:

    補充 :數(shù)組長度= sizeof(arr)/sizeof(arr[0]) 注意: ?。?! 不適用于當arr 充當形參時(函數(shù)傳參) ?。。?因為函數(shù) 傳遞 的是 int arr[0] 的 地址(指針) ,而 不是數(shù)組內容 , 若在此情況計算整形數(shù)組長度 ????????在X86系統(tǒng)下,指針大小為 4 ,所以計算結果為4/4=1; ??????

    2024年03月10日
    瀏覽(25)
  • python藍橋杯備考——字符串小知識點

    \\\' \\\'.join(str(k) for k in sorted(set(factors))) 是一個用于將列表中的元素連接成一個字符串的常見用法。 下面對其含義和用法進行解釋: set(factors) : 這一步將列表 factors 轉換為集合(set),以去除重復的元素。這樣可以確保最終連接的字符串中不會有重復的元素。 sorted(set(factors)) :

    2024年01月24日
    瀏覽(17)
  • C語言零碎知識點之字符串數(shù)組

    在C語言中字符串數(shù)組有兩種表示方法: 第一種, 二維字符數(shù)組 可以利用二維字符數(shù)組來表示字符串,格式是: char strs[row][col]; 。例如: 其中的 row 表示二維數(shù)組中的行,表示有幾個字符串;而 col 表示二維數(shù)組中的列,表示能存放字符串的最大長度。 第二種, 字符指針數(shù)

    2024年01月18日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包