不使用strlen()
时间: 2024-05-25 11:08:15 浏览: 168
strlen() 函数用于计算字符串的长度,如果你不想使用它,可以考虑以下两种方法:
1.使用循环计算字符串长度
你可以使用循环来遍历字符串中的每个字符,直到遇到字符串结束标志'\0'。在遍历的过程中,累加一个计数器来计算字符的数量即可。下面是一个示例代码:
```
int my_strlen(const char* str){
int len = 0;
while(str[len] != '\0'){
len++;
}
return len;
}
```
2.使用指针计算字符串长度
你可以使用指针来遍历字符串中的每个字符,直到遇到字符串结束标志'\0'。在遍历的过程中,指针指向下一个字符,每次计数器加一。下面是一个示例代码:
```
int my_strlen(const char* str){
const char* p = str;
while(*p != '\0'){
p++;
}
return p - str;
}
```
以上两种方法都可以计算出字符串的长度,但是第二种方法更加高效。需要注意的是,在计算字符串长度之前,需要先判断字符串是否为空指针。
相关问题
用C语言编写2.不使用strlen函数,求解数入的字符串长度
可以使用循环遍历字符串,直到遍历到字符串结束符 '\0',统计遍历的次数即为字符串长度。下面是一个示例代码:
```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";
int len = my_strlen(str);
printf("The length of \"%s\" is %d.\n", str, len);
return 0;
}
```
当然,在实际的项目中,为避免遍历时间开销,我们通常会在字符串上方记录其长度,因此不需要每次遍历计算。
c语输入一个字符串,统计并输出其中大写字母的个数,并打印其中的大写字母,要求不使用strlen函数
好的,既然不使用 `strlen` 函数,我们可以使用循环遍历字符串来计算字符串的长度。以下是不使用 `strlen` 函数的代码实现:
```c
#include <stdio.h>
#define MAX_LENGTH 100
int main() {
char str[MAX_LENGTH];
int len = 0, i, count = 0;
printf("请输入字符串:");
scanf("%s", str);
// 计算字符串长度
while (str[len] != '\0') {
len++;
}
printf("该字符串中的大写字母为:");
// 遍历字符串,统计大写字母个数并打印
for (i = 0; i < len; i++) {
if (str[i] >= 'A' && str[i] <= 'Z') {
printf("%c ", str[i]);
count++;
}
}
printf("\n大写字母的个数为:%d\n", count);
return 0;
}
```
在这段代码中,我们通过一个循环来计算字符串的长度,然后再使用另一个循环来遍历字符串,统计大写字母的个数并打印。
阅读全文
相关推荐













