現在苦しんで覚えるC言語でC++を学んでいるのですが、strtokをstrtok_sに変換する方法がよくわかりません.
整数をカンマで区切って入力した時、縦方向に入力した順に数値を出力したいです.入力値が10以下の時は入力してないところはNULL状態で出力したいです.一応太字の様に(上:記載されていたコード , 下:自分で変えたコード)しましたが&の後にどの変数を入れたらいいかわかりません.どうかアドバイスをお願いします.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main(){
int i, j, val[10];
char str[32], * ch;
fgets(str, sizeof(str), stdin); **ch = strtok(str, ",\n");** ↓ **ch = strtok_s(str,"\n,&ch);** for (i = 0; i < 10; i++) { if (ch == NULL) { break; } else { val[i] = atoi(ch); } **ch = strtok(NULL, ",\n");** ** ↓**
ch = strtok_s(NULL, ",\n",&ch);
}
for (j = 0; j < i; j++) {
printf("%d\n", val[j]);
}
return;
}
回答3件
あなたの回答
tips
プレビュー