C++處理輸入字符串并轉(zhuǎn)為數(shù)組的操作
最近在做題的時(shí)候在處理輸入時(shí)遇到一個(gè)令人頭疼的問題,今天解決了和大家分享一下:
比如題目要求的輸入為一行數(shù),數(shù)與數(shù)之間用空格間隔開,數(shù)的個(gè)數(shù)未知,數(shù)也有正有負(fù):
11 -2 65 7
那么如何把這個(gè)輸入保存到數(shù)組a中,且數(shù)組a中的值為a[0]=11,a[1]=-2,a[3]=65,a[4]=7呢?
先看代碼:
#include <iostream> #include <stdio.h> using namespace std; int main() { int a[20]; int i = 0; cin>>a[i++]; while(getchar()!='\n') { cin>>a[i++]; } for(int j=0;j<i;j++) { cout<<"a["<<j<<"]:"<<a[j]<<endl; } }
關(guān)于getchar()函數(shù):
該函數(shù)返回輸入流的每一個(gè)字符,在這段程序中當(dāng)該函數(shù)判斷當(dāng)前字符不是換行符時(shí),則輸入流cin向數(shù)組寫入一個(gè)數(shù)字。
有的同學(xué)可能會(huì)問為什么這里會(huì)寫一整個(gè)數(shù)字而不是一個(gè)字符,這里說一些我的見解,我們平時(shí)使用cin時(shí),一般都是這樣使用的:cin>>a>>b,在控制臺(tái)實(shí)際輸入時(shí)a和b是以空格分開的,也就是說cin會(huì)一直讀入字符直到遇到空格或換行符,那么我們的程序里的cin也就一直讀入字符了。
其他問題:
該程序可以處理以任何字符分隔數(shù)字的字符串,包括冒號(hào)分號(hào)甚至小數(shù)點(diǎn),目前還不知原因?yàn)楹?/p>
補(bǔ)充:C++輸入未知長度字符串存入數(shù)組
記錄C++學(xué)習(xí)過程的問題,方便以后自己查看
int main() { string str; char temp; while((temp=cin.get())!='\n') { str +=temp; } const int LEN =str.length(); char* dest = new char[LEN]; for(int i = 0;i<LEN;i++) //將字符串?;卮娴阶址麛?shù)組中答 { dest[i]=str[i]; cout<<dest[i]; } delete 【】dest; return 0; }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
C++ 關(guān)于 CMFCPropertyGridCtrl 的使用方法
這篇文章主要介紹了C++ 關(guān)于 CMFCPropertyGridCtrl 的使用方法的相關(guān)資料,需要的朋友可以參考下2015-06-06C語言數(shù)據(jù)結(jié)構(gòu)中約瑟夫環(huán)問題探究
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)中約瑟夫環(huán)問題,總的來說這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來一種解題優(yōu)化的思路2023-01-01C++基礎(chǔ)學(xué)習(xí)之利用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列
這篇文章主要給大家介紹了關(guān)于C++基礎(chǔ)學(xué)習(xí)之利用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05C語言實(shí)現(xiàn)的循環(huán)單鏈表功能示例
這篇文章主要介紹了C語言實(shí)現(xiàn)的循環(huán)單鏈表功能,結(jié)合實(shí)例形式分析了基于C語言實(shí)現(xiàn)的循環(huán)單鏈表定義、創(chuàng)建、添加、刪除、打印、排序等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04VSCode (Visual Studio Code) V1.43.0下載并設(shè)置成中文語言的方法
Visual Studio Code是一款免費(fèi)開源的現(xiàn)代化輕量級(jí)代碼編輯器,支持語法高亮、智能代碼補(bǔ)全、自定義熱鍵、括號(hào)匹配、代碼片段、代碼對(duì)比 Diff、GIT 等特性,這篇文章主要介紹了VSCode (Visual Studio Code) V1.43.0下載并設(shè)置成中文語言,需要的朋友可以參考下2020-03-03C語言實(shí)現(xiàn)動(dòng)態(tài)版通訊錄的代碼分享
這篇文章主要為大家詳細(xì)介紹了如何利用C語言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的動(dòng)態(tài)版通訊錄,主要運(yùn)用了結(jié)構(gòu)體,一維數(shù)組,函數(shù),分支與循環(huán)語句等等知識(shí),需要的可以參考一下2023-01-01