C++處理輸入字符串并轉(zhuǎn)為數(shù)組的操作
最近在做題的時候在處理輸入時遇到一個令人頭疼的問題,今天解決了和大家分享一下:
比如題目要求的輸入為一行數(shù),數(shù)與數(shù)之間用空格間隔開,數(shù)的個數(shù)未知,數(shù)也有正有負(fù):
11 -2 65 7
那么如何把這個輸入保存到數(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ù)返回輸入流的每一個字符,在這段程序中當(dāng)該函數(shù)判斷當(dāng)前字符不是換行符時,則輸入流cin向數(shù)組寫入一個數(shù)字。
有的同學(xué)可能會問為什么這里會寫一整個數(shù)字而不是一個字符,這里說一些我的見解,我們平時使用cin時,一般都是這樣使用的:cin>>a>>b,在控制臺實際輸入時a和b是以空格分開的,也就是說cin會一直讀入字符直到遇到空格或換行符,那么我們的程序里的cin也就一直讀入字符了。
其他問題:
該程序可以處理以任何字符分隔數(shù)字的字符串,包括冒號分號甚至小數(shù)點,目前還不知原因為何
補(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;
}
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
VisualStudio類文件的管理(類文件的分離)的實現(xiàn)
在使用?Visual?Studio?開發(fā)項目的時候,學(xué)會進(jìn)行“類文件的分離”十分重要,本文主要介紹了VisualStudio類文件的管理(類文件的分離)的實現(xiàn),感興趣的可以了解一下2024-03-03
C語言數(shù)據(jù)結(jié)構(gòu)通關(guān)時間復(fù)雜度和空間復(fù)雜度
對于一個算法,其時間復(fù)雜度和空間復(fù)雜度往往是相互影響的,當(dāng)追求一個較好的時間復(fù)雜度時,可能會使空間復(fù)雜度的性能變差,即可能導(dǎo)致占用較多的存儲空間,這篇文章主要給大家介紹了關(guān)于C語言時間復(fù)雜度、空間復(fù)雜度的相關(guān)資料,需要的朋友可以參考下2022-04-04
C++使struct對象擁有可變大小的數(shù)組(詳解)
下面小編就為大家?guī)硪黄狢++使struct對象擁有可變大小的數(shù)組(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12
C語言中建立和刪除文件連接的相關(guān)函數(shù)講解
這篇文章主要介紹了C語言中建立和刪除文件連接的相關(guān)函數(shù)講解,分別為link和unlink函數(shù)的使用,需要的朋友可以參考下2015-09-09
C++ Boost Coroutine使用協(xié)程詳解
通過Boost.Coroutine,可以在C++中使用協(xié)程。協(xié)程是其他編程語言的一個特性,通常使用關(guān)鍵字yield來表示協(xié)程。在這些編程語言中,yield可以像return一樣使用2022-11-11
error LNK2019: 無法解析的外部符號 問題的解決辦法
error LNK2019: 無法解析的外部符號 問題的解決辦法,需要的朋友可以參考一下2013-05-05
C++多字節(jié)字符與寬字節(jié)字符相互轉(zhuǎn)換
最近在C++編程中經(jīng)常遇到需要多字節(jié)字符與寬字節(jié)字符相互轉(zhuǎn)換的問題,自己寫了一個類來封裝wchar_t與char類型間的轉(zhuǎn)換2012-11-11

