sscanf
是一个C语言库函数,用于从字符串中读取和解析数据
sscanf
的格式字符串中,你可以使用空格来分隔不同的输入项。例如,如果你想从一个字符串中读取两个整数,可以使用以下代码:int a, b;
char input[] = "10 20";
sscanf(input, "%d %d", &a, &b);
%d
表示整数,%f
表示浮点数,%s
表示字符串等。例如:int a;
float b;
char input[] = "10 20.5";
sscanf(input, "%d %f", &a, &b);
[]
。例如,如果你想跳过字符串中的逗号,可以使用以下代码:int a, b;
char input[] = "10,20";
sscanf(input, "%d[,]%d", &a, &b);
%n
(其中n是一个整数)来限制字符串的长度。例如,如果你想读取最多10个字符的字符串,可以使用以下代码:char str[11];
char input[] = "Hello, World!";
sscanf(input, "%10s", str);
char name[20];
char input[] = "Name: John Doe";
sscanf(input, "Name: %19s", name);
%n
来检查是否成功读取了这些字段。例如:int a, b;
char input1[] = "10";
char input2[] = "10 20";
int count;
sscanf(input1, "%d%n", &a, &count);
if (count == strlen(input1)) {
b = 0; // 设置默认值
} else {
sscanf(input1 + count, " %d", &b);
}
sscanf(input2, "%d%n", &a, &count);
if (count == strlen(input2)) {
b = 0; // 设置默认值
} else {
sscanf(input2 + count, " %d", &b);
}
这些技巧可以帮助你更有效地使用sscanf
函数从字符串中读取和解析数据。请注意,sscanf
函数在处理错误输入时可能会产生未定义的行为,因此在实际应用中要谨慎使用。