Write a function that takes a string as input and reverse only the vowels of a string.
Example 1:
Given s = “hello”, return “holle”.
Example 2:
Given s = “leetcode”, return “leotcede”.
代码:
//遍历字符串,temp数组顺序存储元音字母;
//再遍历字符串,碰到元音字母从temp数组最后元素往前替换
char* reverseVowels(char* s) {
if(strlen(s) <= 1) return s;
char *head = s;
char *temp = (char *)malloc(strlen(s) * sizeof(char));
int i = 0;
char str[11] = "aAeEiIoOuU";
while(*s != '\0')
{
//strchr() 在一个字符串中查找另一个字符串第一次出现的位置,找到返回这个字符指针,找不到返回NULL;
if(NULL != strchr(str, *s))
temp[i++] = *s;
s++;
}
s = head;
while(*s != '\0')
{
if(NULL != strchr(str, *s))
*s = temp[--i];
printf("%d\n", i);
s++;
}
return head;
}