写一个函数,将一个字符串中的元音字母复制到另一字符串,然后输出。
void my_cp(char*arr1,const char*arr2) { assert(arr1&&arr2); char* start = arr1; while (*arr2!='\0') { if (*arr2=='a'|| *arr2 == 'e'|| *arr2 == 'i'|| *arr2 == 'o'||* arr2 == 'u' ||* arr2 == 'A' || *arr2 == 'E' || *arr2 == 'I' || *arr2 == 'O' || *arr2 == 'U' ) { *arr1 = *arr2; arr1++;//仅在满足条件的时候arr1才移动 } arr2++; } *arr1 = '\0';//记得加\0 printf("%s\n",start); } int main() { char arr1[20] = { 0 }; char arr2[20] = {0}; fgets(arr2, sizeof(arr2), stdin); if (arr2[strlen(arr2)-1]=='\n') { arr2[strlen(arr2)-1] = '\0'; } my_cp(arr1,arr2); return 0; }
#include <stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #define N 50 void vowel(char* p, char* p1);//vowel 元音 int main(void) { char s1[N],s2[N]; int n; puts("请输入一个字符串"); gets(s1); puts("字符串元音字母为:"); vowel(s1, s2); puts(s2); return 0;
}
void vowel(char* p, char* p1) { int i = 0,j=0; while (*(p+i)!='\0') { if (*(p + i) == 'A' || *(p + i) == 'E' || *(p + i) == 'I' || *(p + i) == 'O' || *(p + i) == 'U' || *(p + i) == 'a' || *(p + i) == 'e' || *(p + i) == 'i' || *(p + i) == 'o' || *(p + i) == 'u') {//所有元音字母 *(p1 +j) = *(p + i); j++; } i++; } }
题目解析:
该题的重点在于元...
用户登录可进行刷题及查看答案
该题的重点在于元音字母的判断,通过或条件,凡是元音字母都进行拷贝
#include<stdio.h> void cpy(char s[], char c[]) { int i, j; for (i = 0, j = 0; s[i] != '\0'; i++) { //判断元音字母 if (s[i] == 'a' || s[i] == 'A' || s[i] == 'e' || s[i] == 'E' || s[i] == 'i' ||s[i] == 'I' || s[i] == 'o' || s[i] == 'O' || s[i] == 'u' || s[i] == 'U') { c[j] = s[i]; j++; } } c[j] = '\0'; } int main() { char str[80], c[80]; printf("input string:"); gets(str); cpy(str, c); //将str中的元音字母拷贝到c中 printf("The vowel letters are:%s\n", c); return 0; }
登录后提交答案