C言語のstrtolとstrtok関数の使い方を教えて
C言語では strtol と strtok 関数を以下のように使用します。
- strtol 関数は文字列を長整数に変換します。その関数のプロトタイプは次のとおりです。
long strtol(const char *nptr, char **endptr, int base)
- 変換対象の文字列
- endptr:変換完了後の先頭の無効文字を指すポインタで、NULL になる可能性があります。
- 進数は2から36までの任意の数または0
ネイティブな日本語でこの文を言い換えてください。オプションは1つだけです。
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "12345abc";
char *endptr;
long num = strtol(str, &endptr, 10);
if (endptr == str) {
printf("No digits were found.\n");
}
else {
printf("The number is: %ld\n", num);
printf("The next character is: %s\n", endptr);
}
return 0;
}
- strtok関数は文字列を分割するために使用されます。その関数プロトタイプは次のとおりです。
char *strtok(char *str, const char *delim)
- 分割する文字列。最初の呼び出し時は設定し、以後の呼び出し時はNULLを設定。
- 文字列を分割するためのデリミタ:分割文字列の区切り文字。
例えばコード:
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello,World,How,Are,You";
char *token;
token = strtok(str, ",");
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, ",");
}
return 0;
}