003_指针指向字符串,查找字符

例1 计算字符串长度:

int strlen(char *str)
{
	int len = 0;
	
	while(*str++ != '\0')  //比较str[i]不为'\0'时,指向下一个位置
		len++;  //计算长度
		
	return len;	
}

例2 查找字符串中是否含有目标字符:

/*在字符串中查找特定的字符*/
int find_char(char **str, char value)
{
	char *string_t;
	int val_pos = 0;
	
	assert(str != NULL);   //确认字符串非空,头文件 #include "assert.h"
	
	while((string_t = *str++) != NULL)  //字符串非空
	{
		while(*string_t != '\0')  //字符串未到结尾,则继续查找
		{
			val_pos++;
			if(*string_t++ == value)
			{
				return val_pos;
			}
		}
	}
	
	return -1; 
}

调用:

int main(void)
{
	char *str = "MacroSilicon";
	//char **str_str = {"MacroSilicon", "shao"};  //这种方式初始化错误,为什么错误 
	char *str_str[]={ "MacroSilicon", "shao", NULL };
	
	printf("str length: %d\n", strlen(str));
	printf("str length: %d\n", find_char(str_str, 'S'));
	
	return 0;
} 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值