C语言--求字符串长度的三种解法

问题:

求一个字符串的三种解法

一、计数的方法

#include<stdio.h>
#include<assert.h>
int my_strlen( char* str)
{
	int count=0;
	while (*str)
	{
		count++;
		str++;
	}
	return count;
}
int main(void)
{
	char *arr = "abcef";
	int ret = my_strlen(arr);
	printf("%d\n", ret);
}

二、指针-指针的方法

#include<stdio.h>
#include<assert.h>
int  my_strlen(const char*str)
{
	assert(srt);
	const char* ret = str;
	while (*ret++)
	{
		;
	}
	return(ret - str-1);
}

int main(void)
{

	char *arr = "abcdef";
	 printf("%d\n",my_strlen(arr));
}

三、用递归的方法

#include<stdio.h>
#include<assert.h>
int my_strlen(char* srt)
{
	assert(srt);
	if (*srt == ‘\0‘)
	{
		return 0;
	}
	else
	{    
		srt++;
		return (1 + my_strlen(srt));

	}
}
int main(void)
{
	char *arr = "abcdef";
	printf("%d\n", my_strlen(arr));
}
时间: 2024-10-09 22:27:07

C语言--求字符串长度的三种解法的相关文章

求字符串长度的三种方法

1.指针 #include<stdio.h> int strlen(char s[]) {     int len=0; while(*s++!='\0') {       len++; } return len; } int main() { char s[]="123456789"; printf("%d\n",strlen(s)); system("pause");    return 0; } 2.计数 #include<

字符串长度的三种求取方法

1.遍历字符串,只要不遇到字符0,计数器就加1. int my_strlen(const char *str)//加const修饰更安全 { int count=0; while(*str) { count++; str++; } return count; } 2.递归实现 int my_strlen(const char *str) { while(*str) { return 1+my_strlen(str+1); } return 0; } 3.地址相减 int my_strlen(co

求字符串长度函数实现的三种方法

/* Date: 10/03/19 12:49 Description: 求字符串长度函数实现的三种方法*/ #include<stdio.h> int strlen1(char *s);int strlen2(char *s);int strlen3(char *s); int main(void) { char str[]="The function to test my length."; printf("The length1 is:%d\n",

求字符串长度 strlen(数组指针两种方式)

问题: 求字符串中所含有字符的个数(包括空格),即求字符串长度: #include <stdio.h> #include <assert.h> int _strlen(const char* str) { assert(str != NULL); int i=0; for(;*str++!='\0';i++); //for(;str++!=NULL;i++);//有些说这句也可以,但执行结果是死循环,str++即使越界也未必为NULL; return i; } int _strle

【C语言】实现一个函数求字符串长度(不能创建第三方变量)

//实现一个函数求字符串长度(不能创建第三方变量) #include <stdio.h> #include <assert.h> int my_strlen(const char *p) { assert(p); if (*p == '\0') return 0; else return 1 + my_strlen(++p); } int main() { char *p = "abcdefg"; printf("%d\n", my_strl

字符串操作1 - 递归与非递归两种方法求字符串长度

1 //递归求字符串的长度 2 int RecurseLength(const char *str) 3 { 4 if(str == NULL || *str == '\0') 5 return 0; 6 7 if(*str == '\0') 8 return 0; 9 return RecurseLength(str+1) + 1;//返回当前字符数,再递归处理下一个字符 10 } 11 12 13 14 15 16 //非递归求字符串长度 17 int NonRecurseLength(co

【C语言】编写一个函数,求字符串长度

//编写一个函数,求字符串长度 #include <stdio.h> #include <assert.h> int my_strlen(const char *p) { int len=0; assert(p); while (*(p++)) { len++; } return len; } int main() { char *p = "abcdef"; printf("%d\n", my_strlen(p)); return 0; }

C语言中最常用的三种输入输出函数scanf()、printf()、getchar()和putchar()

本文给大家介绍C语言中最常用的三种输入输出函数scanf().printf().getchar()和putchar(). 一.scanf()函数格式化输入函数scanf()的功能是从键盘上输入数据,该输入数据按指定的输入格式被赋给相应的输入项.函数一般格式为:scanf("控制字符串",输入项列表):其中控制字符串规定数据的输入格式,必须用双引号括起,其内容是由格式说明和普通字符两部分组成.输入项列表则由一个或多个变量地址组成,当变量地址有多个时,各变量地址之间用逗号“,”分隔.sca

数组-----求字符串长度

//求字符串长度 #include"stdafx.h" #include<iostream> using namespace std; void main(){ char s[201]; int i = 0; cout << "Please enter a string(ended with enter):" << endl; cin.getline(s, 200); //cin.getline()的使用 while (s[i])