人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

C言語で,String配列として入っているカンマ区切りの数値列から,それぞれの値をint変数に取り出したいのですが,どのような方法が一番スピーディーでしょうか.

●質問者: xiaotai
●カテゴリ:コンピュータ
✍キーワード:C言語 String スピーディー 変数 配列
○ 状態 :終了
└ 回答数 : 2/3件

▽最新の回答へ

1 ● blatt
●60ポイント

私もあまり自信ないです。

ソースをさらすのもなんですが、即興で考えるとこんな感じか?

/*
strは問題の文字列
valueはint配列へのポインタ
*/
int str_to_int(char *str, int *value)
{
 char*ptok;

 ptok = strtok(str, ",");
 while(ptok){
 *value = atoi(ptok);
 value++;
 ptok = strtok(NULL, ",");
 }

 return 0;
}

こんな感じかな。あらかじめ個数が決まっていないとvalueの配列を確保できないけど・・・その時はカンマをカウントして・・・みたいな。

http://m--takahashi.com/bbs/pastlog/10500/10480.html


2 ● pi8027
●10ポイント

int str_to_int(char *str, int *value){

while(1){

int result = 0;

while(*str != ','){

if(*str >= '0' && *str <= '9'){

result = result * 10 + *str - '0';

}

else if(*str == '\0'){

return 0;

}

else{

return -1;

}

str++;

}

*value = result;

value = value + sizeof(int);

}

}

多分こんな感じになると思います(動かしていないので間違っているかも知れませんが)。何でも関数に頼れば良いという物でもありません。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ