[英]how can i scan a string with words and numbers but put it on different array
例如,我有一個字符串 abc123(總是先輸入單詞再輸入數字,單詞和數字之間沒有空格)
我知道在 c 你可以像這樣單獨掃描
char words[10], numbers[10];
scanf("%[a-zA-Z]%[0-9]", words, numbers)
代碼會將 abc 轉換為單詞,將 123 轉換為數字
在 c++ 中可以這樣做嗎? 以及如何去做?
以下代碼讀取一行直到第一個新行(您可能希望將其更改為空格)並將每個字符轉換為數字。 如果轉換失敗,則為一封信。
#include <string>
#include <vector>
#include <iostream>
int main(){
std::string line;
std::vector<char> words;
std::vector<int> numbers;
while(std::getline(std::cin, line, '\n')){
for(const char c : line){
try{
numbers.push_back(std::stoi(std::string(1, c)));
}
catch( const std::invalid_argument &ex){
std::cout << ex.what() << ": " << c << std::endl;
words.push_back(c);
}
}
}
for(const auto t : numbers){
std::cout << t;
}
for(const auto t : words){
std::cout << t;
}
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.