1

Cで文字列をlong longに変換するにはどうすればよいですか?

私が持っている

char* example = "123";

例を long long に変換したいので、次のようなものが必要です

long long n = example;

これどうやってするの?

4

1 に答える 1

11

関数を使用しますstrtoll

#include <stdlib.h>
#include <errno.h>

char const * example = "123";

char * e;
errno = 0;

long long int n = strtoll(example, &e, 0);

if (*e != 0 || errno != 0) { /* error, don't use n! */ }

実際、eは変換されたシーケンスの次の文字を指すため、これを使用してさらに洗練された解析を行うことができます。現状では、シーケンス全体が変換されたことを確認するだけです。errnoオーバーフローが発生したかどうかを調べることもできます。詳しくはマニュアルをご覧ください。

(歴史的な関心のために:long long intstrtollは C99 で導入されました。それらは C89/90 では使用できません。ただし、同等の関数strtol/ strtoul/strtodは存在します。)

于 2013-05-03T21:16:04.900 に答える