用c语言编写一个子函数,实现strlen功能
时间: 2024-09-27 18:16:32 浏览: 16
当然可以。在C语言中,`strlen` 函数是标准库函数,用于计算字符串的长度(不包括结束的空字符'\0')。如果你想自己编写一个简单的实现,你可以使用一个循环来遍历字符串,直到遇到结束符为止。下面是一个基本的子函数实现:
```c
#include <stdio.h>
size_t custom_strlen(const char* str) {
size_t len = 0;
while (*str != '\0') { // 当找到空字符时停止计数
len++;
str++; // 移动指针到下一个字符
}
return len;
}
int main() {
const char test_str[] = "Hello, World!";
printf("Length of the string is: %zu\n", custom_strlen(test_str));
return 0;
}
```
在这个例子中,`custom_strlen` 函数接收一个 `const char*` 类型的参数,它指向一个字符串。通过递增 `len` 和指针 `str`,我们不断检查每个字符是否为结束符,直到达到终止条件。
相关问题
用C语言编写一个实现 strlen函数功能的函数,并试用主函数调用。
可以用以下代码实现:
```c
#include <stdio.h>
int my_strlen(char *str) {
int len = 0;
while (*str != '\0') {
len++;
str++;
}
return len;
}
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
int len = my_strlen(str);
printf("字符串长度为:%d\n", len);
return 0;
}
```
这里我们定义了一个 `my_strlen` 函数,它的参数是一个字符指针,返回值是字符串的长度。在函数内部,我们定义了一个变量 `len` 来存储字符串的长度,然后通过循环遍历字符串中的每个字符,每遍历一个字符 `len` 的值就加一,直到遍历到字符串的结尾为止。最后,我们返回 `len` 的值作为字符串的长度。
在主函数中,我们定义了一个字符数组 `str` 来存储用户输入的字符串,然后调用 `my_strlen` 函数来计算字符串的长度,并将结果输出到屏幕上。
用C语言编写一个函数,实现逆向输出字符串的单词
以下是用C语言编写一个函数,实现逆向输出字符串的单词的例子:
```c
#include<stdio.h>
#include<string.h>
void reverseWords(char *s) {
int len = strlen(s);
int i = 0, j = 0;
while (i < len) {
while (i < len && s[i] == ' ') i++;
if (i >= len) break;
j = i + 1;
while (j < len && s[j] != ' ') j++;
reverse(s + i, s + j);
i = j;
}
reverse(s, s + len);
}
void reverse(char *begin, char *end) {
char temp;
while (begin < end) {
temp = *begin;
*begin++ = *end;
*end-- = temp;
}
}
int main() {
char str[] = "I love programming";
printf("Original string: %s\n", str);
reverseWords(str);
printf("Reversed words: %s\n", str);
return 0;
}
```
输出:
```
Original string: I love programming
Reversed words: programming love I
```
该函数首先使用两个指针 `i` 和 `j` 遍历字符串,以找出每个单词的起始位置和结束位置,然后使用 `reverse` 函数将每个单词反转,最后使用 `reverse` 函数将整个字符串反转。