C语言:给出一个字符串,求该字符串中出现的不同字符的个数(利用指针)

思路:(这篇是利用指针来写的)

假如给出的字符串为:qwe 123 qwe

这个字符串中不同类型的字符有7个

可以借助两层for循环,第一步:先将x[0]与x[1]、x[2]……x[strlen(x)]比较,如果相等,直接将strlen(x)减去1

                                    第二步:将x[1]与x[0]、x[2]……x[strlen(x)]比较,如果相等,直接将strlen(x)减去1

                                    第三步:将x[2]与x[0]、x[1]、x[3]……x[strlen(x)]比较,如果相等,直接将strlen(x)减去1

#include<stdio.h>
#include<string.h>

#define M 200
#define N 128
int count(char *pstr,char *count)
{
	//入参检查
	if(NULL == pstr || NULL == count)
	{
		printf("NULL_ERROR\n");
		return -1;
	}
	//先定义一个可以存放128个字符的数组出来
	int x[N] = {0};
	//遍历str这个字符串,判断出现的次数
	while(*pstr)
	{
		if(0 == x[*pstr])
			x[*pstr] = 1;
		pstr++;	//移动指针的指向
	}
	//遍历x数组,查找1的个数
	int i;
	for(i = 0;i < N;i++)
	{
		if(1 == x[i])
			(*count)++;
	}
	return 0;
}

int main()
{
	char str[M] = {'\0'};
	char *pstr = str;
	gets(str);
	int sum = 0;
	int ret = count(pstr,&sum);
	if(-1 == ret)
		return -1;
	printf("%d\n",sum);
	return 0;
}

版权声明:本文为jingjing_Q原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。