|
发表于 2024-9-16 20:01:02
|
显示全部楼层
好的,鱼油同学,以下是使用指针传参形式实现 `mystrcat`(字符串拼接)、`mystrcmp`(字符串比较)和 `mystrcpy`(字符串复制)的示例代码。
### 实现 `mystrcat`
- #include <stdio.h>
- // 拼接字符串
- char *mystrcat(char *dest, const char *src) {
- char *p = dest;
- // 移动到dest的末尾
- while (*p != '\0') {
- p++;
- }
- // 逐个字符拼接src到dest尾部
- while (*src != '\0') {
- *p++ = *src++;
- }
- // 添加字符串结束符
- *p = '\0';
- return dest;
- }
- int main() {
- char dest[100] = "Hello, ";
- char src[] = "World!";
- mystrcat(dest, src);
- printf("%s\n", dest); // 输出:Hello, World!
- return 0;
- }
复制代码
### 实现 `mystrcmp`
- #include <stdio.h>
- // 比较两个字符串
- int mystrcmp(const char *str1, const char *str2) {
- while (*str1 && (*str1 == *str2)) {
- str1++;
- str2++;
- }
- return *(unsigned char *)str1 - *(unsigned char *)str2;
- }
- int main() {
- char str1[] = "Hello";
- char str2[] = "Hello";
- int result = mystrcmp(str1, str2);
- printf("%d\n", result); // 输出:0 表示相等
- return 0;
- }
复制代码
### 实现 `mystrcpy`
- #include <stdio.h>
- // 复制字符串
- char *mystrcpy(char *dest, const char *src) {
- char *p = dest;
- // 逐个字符复制
- while ((*p++ = *src++) != '\0');
- return dest;
- }
- int main() {
- char dest[100];
- char src[] = "Hello, World!";
- mystrcpy(dest, src);
- printf("%s\n", dest); // 输出:Hello, World!
- return 0;
- }
复制代码
希望这段代码能帮助你理解如何通过指针形式实现这些字符串操作函数。如果有任何问题,请随时提问!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|