おはようございます。
以前質問させていただいたものです。
返事をできず、日が空いてしまい申し訳ございません。
もう一度、質問させてもらいます。
最初のコード(6文字の数値)と そのあとに a5 b10 c15 ←(順不動で後ろの値をそれぞれ保存して使用したい)
例
123456 a10 b20 c15 or 456123 b a c or 654321 c b a 等
gets等で入力して行う。
strncmpを使って作成。 お願いします。
ソースに起こせない理由は、空白の処理でエラーがでてしまうのと、
空白で区切って、aの値 bの値 cの値をそれぞれ空白の後ろのaかbかcか判定して、その値をそれぞれ保存する部分です。
入力した文字列から値をそれぞれ取得
Re: 入力した文字列から値をそれぞれ取得
申し訳ないと思うのなら、質問する前にまず返事をしたらどうですか?あしか さんが書きました:以前質問させていただいたものです。
返事をできず、日が空いてしまい申し訳ございません。
もう一度、質問させてもらいます。
文字列から空白までの情報を取得 • C言語交流フォーラム ~ mixC++ ~
【追記】
前のトピックはログインしないと返信できなくなっている(?)ようなので、返事をこのトピックで書くといいかもしれません。
もしも課題の丸投げであるならば、禁止事項です。あしか さんが書きました:最初のコード(6文字の数値)と そのあとに a5 b10 c15 ←(順不動で後ろの値をそれぞれ保存して使用したい)
例
123456 a10 b20 c15 or 456123 b a c or 654321 c b a 等
gets等で入力して行う。
strncmpを使って作成。 お願いします。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
-
かずま
Re: 入力した文字列から値をそれぞれ取得
a や b の後に数字が来ないこともあるんですね。その場合は 0 と解釈するんでしょうか?あしか さんが書きました: 最初のコード(6文字の数値)と そのあとに a5 b10 c15 ←(順不動で後ろの値をそれぞれ保存して使用したい)
例
123456 a10 b20 c15 or 456123 b a c or 654321 c b a 等
前回の例には cc12 というのがありましたが、a, b, c は 1文字だけなんですよね。
ソースに起こせないのに、エラーが出るんですか?あしか さんが書きました: ソースに起こせない理由は、空白の処理でエラーがでてしまうのと、
空白で区切って、aの値 bの値 cの値をそれぞれ空白の後ろのaかbかcか判定して、その値をそれぞれ保存する部分です。
どんなエラーですか?
おそらく、エラーが出るソースは書けたけれど、正しいソースが書けない
という意味ですよね。それなら、エラーが出るソースを添付してください。
そうすれば丸投げではありません。
次のコードは strncmp を使っていないので、課題の解答にはならないと
思いますが、参考になるところがあるんじゃないでしょうか?
#include <stdio.h> // fgets, printf
#include <stdlib.h> // atoi
#include <string.h> // strchr
int main(void)
{
int n, a, b, c;
char buf[256];
while (fgets(buf, sizeof buf, stdin)) {
n = atoi(buf);
a = atoi(strchr(buf, 'a') + 1);
b = atoi(strchr(buf, 'b') + 1);
c = atoi(strchr(buf, 'c') + 1);
printf(" n=%d, a=%d, b=%d, c=%d\n", n, a, b, c);
}
return 0;
}