char* found(char*dest, char*src) { char* rsrc = src;//遍历原语句 char* gsrc = src;//记录首地址相同的原语句 char* gdest = dest;//回滚目标语句回到初位置 while (*src) { while (*rsrc==*dest&&gdest!='/0') { gsrc++; gdest++; } //回滚 gdest = dest; rsrc++; } if (gdest == '/0') { return gsrc; } else { return NULL; } } int main() { char ch1[] = "hello,world"; char ch2[] = "llo"; char* p = found(ch2, ch1); printf("%s", p); return 0; }
时间: 2024-01-08 21:03:11 浏览: 25
这段代码的作用是在字符串 `ch1` 中查找字符串 `ch2` 的位置,并返回该位置的指针(即 `gsrc`)。具体实现是通过两个指针 `rsrc` 和 `gsrc` 遍历原字符串 `ch1`,当找到与目标字符串 `ch2` 首字符相同的字符时,记录下此时的两个指针位置 `gsrc` 和 `gdest`,然后继续比较两个指针所指的字符是否相同,直到找到目标字符串 `ch2` 或者原字符串 `ch1` 遍历完毕。如果找到目标字符串,则返回 `gsrc`,否则返回 `NULL`。
代码实现上存在一些问题,比如:
1. 在比较字符时,应该使用 `*gdest` 而不是 `gdest`。
2. 在返回结果时,应该判断 `gdest` 是否为 `'\0'` 而不是 `/0`。
另外,该函数的参数命名不太合理,应该将 `src` 改为 `target` 或者 `ch2`,将 `dest` 改为 `source` 或者 `ch1`,以便更好地理解函数的作用。
相关问题
*(char*)dest = *(char*)src
*(char*)dest = *(char*)src是一个赋值语句,它将源字符串src的第一个字符的值赋给了目标字符串dest的第一个字符。这段代码是字符串拷贝函数中的一部分,用于将src字符串的内容拷贝到dest字符串中。这个赋值语句的作用是将源字符串的第一个字符复制到目标字符串的第一个字符位置。<span class="em">1</span><span class="em">2</span>
#### 引用[.reference_title]
- *1* [C语言实现字符串拷贝函数char *strcpy(char *dest, const char *src)](https://blog.csdn.net/ameyume/article/details/5602739)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [编写函数 void dollars(char *dest,char const *src)](https://blog.csdn.net/qaz3171210/article/details/43021283)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
char *cat(char *dest, const char *src); 头文件
这个函数的头文件应该是在C语言中的<string.h>中定义的。它的功能是将源字符串(src)连接到目标字符串(dest)的末尾,并返回连接后的字符串。函数的声明如下:
```c
char *cat(char *dest, const char *src);
```
其中,`dest`是目标字符串,`src`是源字符串。函数会将源字符串的内容复制到目标字符串的末尾,并返回指向目标字符串的指针。