はじめまして。初心者の者です。
今、Timeという変数に"17h"という文字が入っていて、その文字から'h'を取り除いた"17"をAという変数に入れたいのですがうまくいきません。
char Time[10];
char A[10];
forなどでまわして取ろうしているのですが、うまくいきません。
初歩的な事で申し訳ありません。アドバイスお願い致します。
常に、あらゆるケースにおいて、Time は "17h" であり、"17" を A に入れたいのですか?
…というか、A に "17" を入れたいのであれば、
char A[] = "17";
とか
strcpy( A, "17" );
となるのですが、そうじゃないですよね?
長引くスレッドによくある話なのですが、質問者が使用を把握していないというのがあります。
例えば今回の例でいけば
・Time は常に "17h"、A は常に "17"
・Time は2桁の数字 + 'h'、A はそこから 'h' を除いたもの
・Time はn桁の数字 + 'h'、A はそこから 'h' を除いたもの
など、さまざまなケースが考えられます。
2桁の数字 + 'h' だろうと回答者が推測して回答して、実はn桁でした、なんて話になると、どんどんスレッドが伸びてしまいます。
例ではなく、仕様を説明してください。
今回提示された条件だけでは、
char A[] = "17";
でも、決して間違いとは言えません。
どーいうソースを希望されているかわかりませんがたとえば
・頭から2文字を取り出す
A[0]=Time[0]; A[1]=Time[1]; A[2]=0;
とか?
//まず、格納しようとしている領域を0で初期化します。
memset(A,'\0',sizeof(A));
//Aの領域にTimeの文字数から1を引いた
//文字数でコピーします。
strncpy(A,Time,strlen(Time)-1);
ツイート | ![]() |