用c实现strlen strcat 以及strcmp函数要求不使用指针表示法
用c实现strlen strcat以及strcmp函数要求不使用指针表示法 好的,鱼油!为了不使用指针表示法,我们可以使用数组下标来实现 `strlen`、`strcat` 和 `strcmp` 函数。以下是这三个函数的代码:### 实现 `strlen`
int my_strlen(const char s[]) {
int length = 0;
while (s != '\0') {
length++;
}
return length;
}
### 实现 `strcat`
void my_strcat(char dest[], const char src[]) {
int i = 0, j = 0;
// 找到dest末尾
while (dest != '\0') {
i++;
}
// 追加src到dest末尾
while (src != '\0') {
dest = src;
i++;
j++;
}
dest = '\0';
}
### 实现 `strcmp`
int my_strcmp(const char s1[], const char s2[]) {
int i = 0;
while (s1 != '\0' && s2 != '\0') {
if (s1 != s2) {
return s1 - s2;
}
i++;
}
return s1 - s2;
}
这三段代码分别实现了 `strlen`、`strcat` 和 `strcmp` 函数,并且没有使用指针表示法。希望这对你有帮助!如果有任何问题,请随时询问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 #include <stdio.h>
size_t strlen_(const char *str) {
if(!*str) return 0;
return strlen_(str + 1) + 1;
}
int main(void) {
char buff;
scanf("%s", buff);
printf("str: \"%s\", strlen: %zu\n", buff, strlen_(buff));
return 0;
}
#include <stdio.h>
size_t strlen_(const char str[]) {
if(!str) return 0;
return strlen_(&str) + 1;
}
int main(void) {
char buff;
scanf("%s", buff);
printf("str: \"%s\", strlen: %zu\n", buff, strlen_(buff));
return 0;
}
反斜杠让吃了
页:
[1]