簡體   English   中英

我如何掃描帶有單詞和數字的字符串,但將其放在不同的數組中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM