用C语言把求字符串长度的代码封装成函数my_strlen
时间: 2024-04-30 15:23:45 浏览: 123
以下是用C语言封装求字符串长度的函数my_strlen的代码:
```c
#include <stdio.h>
int my_strlen(char *str) {
int len = 0;
while (*str != '\0') {
len++;
str++;
}
return len;
}
int main() {
char str[] = "hello world";
printf("string length: %d\n", my_strlen(str));
return 0;
}
```
在main函数中,我们定义了一个字符串"hello world",然后调用了my_strlen函数来求出字符串的长度。
my_strlen函数的实现很简单,它使用了一个循环来遍历字符串中的每一个字符,直到遇到字符串结束符'\0'为止。在循环过程中,我们不断地将长度加1,最终返回总长度。
相关问题
用c语言编译一个可以删除字符串中重复字符的程序,并封装成函数
当然可以!下面是一个用C语言编写的删除字符串中重复字符的程序,并封装成函数的示例:
```c
#include <stdio.h>
#include <string.h>
void removeDuplicates(char* str) {
int len = strlen(str);
if (len < 2) {
return;
}
int tail = 1;
for (int i = 1; i < len; ++i) {
int j;
for (j = 0; j < tail; ++j) {
if (str[i] == str[j]) {
break;
}
}
if (j == tail) {
str[tail] = str[i];
++tail;
}
}
str[tail] = '\0';
}
int main() {
char str[] = "abbabcdeed";
printf("Original string: %s\n", str);
removeDuplicates(str);
printf("String after removing duplicates: %s\n", str);
return 0;
}
```
在这个示例中,我们定义了一个 `removeDuplicates()` 函数来删除字符串中的重复字符。该函数使用了两个指针 `i` 和 `tail`,其中 `i` 用于遍历字符串中的字符,`tail` 用于跟踪新字符串的尾部位置。
在主函数中,我们声明一个包含重复字符的字符串 `str`,然后调用 `removeDuplicates()` 函数来删除其中的重复字符。最后,我们打印出删除重复字符后的字符串。
输出结果为:
```
Original string: abbabcdeed
String after removing duplicates: abcd
```
希望这个示例能够满足你的需求!如果有任何疑问,请随时提问。
在C语言中,如何从头实现atoi、itoa、strcpy、strlen等字符串处理函数?请提供详细的代码示例。
要从头实现C语言中的字符串处理函数,首先需要对C语言的字符串处理有深入的理解。现在,我们将从基础的函数实现出发,来展示如何编写atoi、itoa、strcpy、strlen等常用函数。
参考资源链接:[C语言实现常用字符串处理函数: atoi、itoa、strcpy、strlen等](https://wenku.csdn.net/doc/41jtsjhpjy?spm=1055.2569.3001.10343)
1. atoi函数实现:
```c
int atoi(const char *str) {
int result = 0, sign = 1, i = 0;
if (str[i] == '-') {
sign = -1;
i++;
} else if (str[i] == '+') {
i++;
}
for (; str[i] != '\0'; i++) {
if (str[i] < '0' || str[i] > '9') {
break;
}
result = result * 10 + (str[i] - '0');
}
return sign * result;
}
```
2. itoa函数实现:
```c
void itoa(int value, char *str) {
char *p = str;
int isNegative = 0;
if (value < 0) {
isNegative = 1;
value = -value;
}
while (value >= 10) {
*p++ = '0' + (value % 10);
value /= 10;
}
*p++ = '0' + value;
if (isNegative) {
*p++ = '-';
}
*p = '\0';
}
```
3. strlen函数实现:
```c
size_t strlen(const char *str) {
const char *s;
for (s = str; *s; ++s) {
}
return (s - str);
}
```
4. strcpy函数实现:
```c
void strcpy(char *dest, const char *src) {
while (*src) {
*dest++ = *src++;
}
*dest = '\0';
}
```
通过以上实现,我们可以看到,每个函数都有其特定的逻辑来处理字符串。这些函数的编写涉及到了指针操作、循环、条件判断等基本编程技能。掌握这些基础函数的实现,不仅有助于深入理解C语言的字符串处理机制,还能在实际开发中提供更灵活的处理方式,尤其是在对标准库函数进行封装或优化时。
为了进一步深入学习字符串处理的知识,建议查看《C语言实现常用字符串处理函数: atoi、itoa、strcpy、strlen等》文档。该资源不仅包括了上述函数的实现细节,还涵盖了其他函数如strcat和memcpy的源代码实现,能够为读者提供更全面的字符串处理函数知识。通过阅读这些源代码,并在实践中应用,你将能够更好地掌握C语言字符串处理的精髓。
参考资源链接:[C语言实现常用字符串处理函数: atoi、itoa、strcpy、strlen等](https://wenku.csdn.net/doc/41jtsjhpjy?spm=1055.2569.3001.10343)
阅读全文