輸入若干英文單詞,將每個單詞的首字母轉換成大寫字母,其他字母為小寫,並按字典順序排列
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(const void * a, const void * b)
{
return strcmp(*(char **)a, *(char **)b);
}
int main(int argc, char* argv[])
{
int n = 0;
int i;
printf("how many words?\n");
scanf("%d", &n);
char ** s = new char *[n];
for (i = 0; i < n; i++)
{
s[i] = new char[100];
scanf("%s", s[i]);
char * t = s[i];
while (*t != '\0')
{
if (t == s[i] && (*t >= 'a' && *t <= 'z')) *t = *t - 'a' + 'A';
if (t > s[i] && (*t >= 'A' && *t <= 'Z')) *t = *t - 'A' + 'a';
t++;
}
}
qsort(s, n, sizeof(char *), cmp);
for (i = 0; i < n; i++)
{
printf("%s\n", s[i]);
}
return 0;
}
how many words?
5
wORd
HellO
yEllow
she
APPLE
Apple
Hello
She
Word
Yellow
Press any key to continue