【发布时间】:2018-06-01 13:46:56
【问题描述】:
如何检查char *name 是否为空?
#include <stdio.h>
#include <string.h>
void store_stuff(char **name, int *age);
int main(void) {
char *name;
int age;
store_stuff(&name, &age);
printf("Name: %s\n", name);
printf("Age: %d\n", age);
}
void store_stuff(char **name, int *age) {
*age = 31;
if (name == NULL) { // how can I check here if char name is empty?
*name = "ERROR";
}
}
【问题讨论】:
-
什么是“空”?在开头将其初始化为
NULL,并检查*name == NULL。然而,对我来说,它看起来像是 XY 问题。这整个方法将来会给你带来麻烦。 -
strlen 的工作原理是计算字符数,直到空字符 '\0' 您可以检查第一个字符是否等于 '\0'
-
这位密歇根大学的学生还是看不懂指针……