私は入力値を分割する方法は?
int a= 254321;
に必要な、その後、a
で
値は、そのような私たちはそれをどのように行うか
char b = {21,43,25};
として新しい変数に配置する必要がありますか?
私は入力値を分割する方法は?
int a= 254321;
に必要な、その後、a
で
値は、そのような私たちはそれをどのように行うか
char b = {21,43,25};
として新しい変数に配置する必要がありますか?
@M.Mによって言われているように、/
と%
はあなたの友人です。それらを使用することによって、あなたは以下のような関数を書くことができます。
#define SPLITTER 100
/* ensure the the value of SPLITTER is not too big for parts to fit into char */
#if SPLITTER > 256
#error value of SPLITTER is to big for type char
#endif
int split(int value, char *parts, int len)
{
int count = -1; /* assume error */
if ((parts) && (len > 0)) /* valid input? */
{
count = 0; /* ok, we have valid input */
while (value != 0)
{
if (count < len) /* ensure not to exceed size of parts! */
{
parts[count] = value % SPLITTER;
}
value /= SPLITTER;
count++;
}
}
return (count);
}
この関数は、(、SPLITTER - 1
の最大の「サイズ」との部分にvalue
を分割parts
で可決されたメモリに書き込みして行わ分割数を返します。無効な入力の場合は-1)。
使用量は次のようになりますあなたの例については:
int result;
char parts[10];
int i;
result = split(254321, parts, 10);
for (i = 0; i < result; i++)
{
printf("part #%d: %d\n", i + 1, parts[i]);
}
出力は次のようになります。
part #1: 21
part #2: 43
part #3: 25
はもちろんのこと、あなたの質問は本当に曖昧です。あなたが尋ねることと使用される構文について正確に記述してください。ステートメントchar b = {25,43,21};任意のcコンパイラによる直接的な構文エラーだけを意味する可能性があります。
と仮定すると、あなたの入力は常に6桁の番号である&要件は チャーBである[3] [2] 単純itoaは()シミュレーションがあり得る:それだ
int num, i, j,d;
char b[3][2];
for(i=2; i>=0; i--)
for(j=1; j>=0; j--){
d = num % 10;
b[i][j]= d+48;
num = num/10;
}
、あなたのアレイであります使用する準備ができて。お役に立てれば。
OPで示されている努力なしに、不完全で不明瞭な質問に対する完全なコードの回答を投稿することにより、コードの募集を奨励しないでください。 – Lundin
@ Lundin、アドバイスをいただきありがとうございます。私は新しいユーザーで、Stackoverflowの文化に慣れていません。私は単純なクエリを見て、答えました。しかし、はい、私は確かに将来的にアドバイスを心がけています。ありがとう。 :) –
コミュニティが怒っているコードの乞食部分を別にすれば、疑問が不明または不完全なように見える場合は、OPにコメントを残して、回答を投稿するよりも詳細な情報を求めてください前提条件そうすれば、推測ゲームをするのではなく、より質の高い質問を実施します。 – Lundin
モジュールと分割を使用します。
int main(void)
{
int a = 254321;
int b[5] = {0};
int i;
for (i = 0; a ;i++) {
b[i] = a % 100;
a = a /100;
}
}
「/」と「%」演算子を使用してください –
この質問にはどのような研究がありますか?ここで[\ [mcve \]](http://stackoverflow.com/help/mcve)を作るものを見てください。 – sjsam
'char b = {21,43,25};'。これは有効ではありません。例だけによる要求は、通常、不明です。そして無効な例を与えることは確かに不明です。あなたは全くアイデアを持っておらず、何の試みもできません。 – kaylum