字符串例题

将函数中的元音字母复制到另一个字符串

void Vowel(char *des,const char *src)
{
	assert(des!=NULL && src!=NULL);
	if(des==NULL || src==NULL)
	{
		return ;
	}

	char chars[] = "aoeiuAOEIU";
	int lenchars = strlen(chars);
	int i = 0;

	while(*src != '\0')
	{
		for(int j=0;j

写出一行字符,把字符串中最长的单词输出

char *MaxWords(const char *str)
{
	char *curWord = (char *)malloc((strlen(str)+1)*sizeof(char));  /*  存放当前单词                     */
	char *maxWord = (char *)malloc((strlen(str)+1)*sizeof(char));  /*  存放最长单词                     */
	int cur = 0;                                                   /*  记录当前单词长度                 */
	int max = 0;                                                   /*  记录最长单词长度                 */

	while(*str != '\0')
	{
		if(isalpha(*str))
		{
			curWord[cur++] = *str;
		}
		else
		{
			if(cur > max)                                          /*  更新单词                          */
			{
				curWord[cur] = '\0';
				strcpy(maxWord,curWord);
				max = cur;
			}
			cur = 0;
		}
		str++;
	}
	if(cur > max)
	{
		curWord[cur] = '\0';
		strcpy(maxWord,curWord);
	}
	free(curWord);

	return maxWord;
}

把16进制字符串转成10进制

int Xstrtoi0(const int n)
{
	int num=0;
	int i=0;
	int j=n;
	int a=0;
	while(j%10!=0)
	{
		i=j%10;
		j=j/10;
		num=num+i*(int)pow((float)16,(float)a);
		i=j;
		a++;
	}
	return num;
}
int Xstrtoi(const char *str)
{
	assert(str != NULL);
	while(*str == ' ')    //去除前面的空格
		str++;
	int tmp = 0;
	int num = 0;

	while(*str=='0' && (*(str+1)=='x' || *(str+1)=='X'))
		str += 2;         //跳过0x或者0X
	
	while(isxdigit(*str)) //判断是十六进制数字字符
	{
		if(isalpha(*str)) //字母字符
		{
			tmp = tolower(*str) - 'a' + 10;
		}
		else              //数字字符
		{
			tmp = *str - '0';
		}
		num = num*16 + tmp;
		str++;
	}

	return num;
}

用递归将整数n转换成字符串,n的位数不确定

void ShowNum0(int n)
{
	int count=0;
	int i=0;
	int j=n;

	while(n!=0)
	{
		n/=10;
		count++;
	}
	int tmp=(int)pow((float)10,(float)count-1);
	while(j%10!=0)
	{
		i=j/tmp;
		j%=tmp;
		count--;
		printf("%d ",i);
	} 
}
void ShowNum(int n)
{
	if(n<10)
	{
		printf("%d ",n);
	}
	else
	{
		ShowNum(n/10);
		printf("%d ",n%10);
	}
}

你可能感兴趣的:(C)