将函数中的元音字母复制到另一个字符串
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<lenchars;j++)
{
if(*src == chars[j])
{
des[i++] = *src;
}
}
src++;
}
des[i] = '\0';
}
写出一行字符,把字符串中最长的单词输出
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);
}
}