static char *find_dns2(const char *str) { if(str == NULL) { return SET_ERROR; } char *ptr = NULL; ptr = strstr(str, ","); if(ptr == NULL) { return 0; } return (ptr+1); }判断参数为NULL时返回了int型,但是函数返回的是char型指针,该怎么改
时间: 2024-01-11 15:03:56 浏览: 145
可以将返回值改为 `NULL`,表示函数返回指针为空。同时,将 `SET_ERROR` 改为 `NULL` 即可。
修改后的代码如下:
```c
static char *find_dns2(const char *str) {
if(str == NULL) {
return NULL; // 返回指针为空
}
char *ptr = NULL;
ptr = strstr(str, ",");
if(ptr == NULL) {
return NULL; // 返回指针为空
}
return (ptr+1);
}
```
相关问题
static char *find_dns1(const char *str) { while(*str != '\0') { if(str != ',') { str++; } } str = '\0'; printf("\nstr = %s\n",str); char *src = str; printf("\nsrc = %s\n",src); return src; }代码是有错误的,请纠正它
在代码中,将一个字符串指针 `str` 赋值为 '\0' 是错误的,应该赋值为 `NULL` 。同时,在字符串比较时,应该使用单引号 `' '` 而不是双引号 `" "`。
以下是修改后的代码:
```
static char *find_dns1(const char *str) {
while(*str != '\0') {
if(*str != ',') {
str++;
}
}
printf("\nstr = %s\n", str);
char *src = (char *)str;
printf("\nsrc = %s\n", src);
return src;
}
```
阅读全文