strtokのかわりの関数 – プログラミング – Home

通知
すべてクリア

strtokのかわりの関数


イリシャ
 イリシャ
(@イリシャ)
ゲスト
結合: 18年前
投稿: 1
Topic starter  

VC7のMFCアプリを作っています。
strtokでカンマ区切りの数値を分割しようとしましたところ
カンマが連続した場合(例:1,2,,4,5)に順番が飛ばされます。
分割した値はint val[5]の各位置にセットします。

理想はこうです。
val[0]=1;
val[1]=2;
val[2]=0;
val[3]=4;
val[4]=5;

でもこうなります。
val[0]=1;
val[1]=2;
val[2]=4;
val[3]=5;
val[4]=0;

理想どおりの結果になる関数はありますか?


引用解決済
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

ありません。作りましょう。


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

書いたコードは?


返信引用
chu-
 chu-
(@chu-)
ゲスト
結合: 18年前
投稿: 1
 

工夫すれば使えないこともないでしょう。
strtolのようにstrtokにもendptrがあると便利なのに。

/*
>lcc test

>test
1030067
>
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
char str[] = 1,,3,,,6,7;
long val = 0;
char *p;

for ( p = strtok(str, ,); p != NULL; p = strtok(NULL, ,) ) {
val = val * 10 + atol(p);
for ( p += strlen(p) + 1; *p == ','; p++ ) {
val *= 10;
}
}

printf(%ld, val);

return 0;
}


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました