文字列形式の説明はあまり明確ではありませんが、とにかくあなたの質問に答えることができると思います(整数を文字で抽出し、それらを適切な int 変数に追加(?)します)。
したがって、次の文字列から始めます。
char* は = "3e,6s,1d,3g,22r,7c" でした。// だった == 変なお尻の文字列
strtokを使用してトークン化するのがおそらく最も簡単です。
char* token = strtok (was,",");
while (token != NULL) {
assign(token); // first token is 3e, second 6s etc...
token = strtok (NULL, ",");
}
これで、 sscanfを使用して数字と文字を見つけることができます。
void assign(char* token) {
char letter;
int number;
if (0 != sscanf(token, "%d%c", number, letter)) {
// the first token produces letter 'e' and number '3'
// now you can switch on letter and add number
// to the proper variable in each case
} else {
//matching failure!!
}
}
文字列形式の他の癖 (別のコンテナーと末尾のフロート (その他??)) に関しては、同様の方法で処理できます。タマネギの皮をむくようなものだと考えて、文字と数字の組み合わせにたどり着くまで、レイヤーごとにフォーマットを進めてください.
さらに、少なくとも sscanf が呼び出されたときに、フォーマット違反が検出されます。