今日练习:
58、编一个程序,将两个字符串s1和s2比较,若s1 > s2,输出一个正数;若s1 = s2, 输出0,否则输出负数。不要用 strcmp 函数。
59、编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中。不用 strcpy 函数。复制时,"\ O '也要复制过去。'"\ O '后面的字符不复制*/
60、写一个函数,将一个字符串中的元音字母复制到另一字符串,然后输出。
编一个程序,将两个字符串s1和s2比较,若s1 > s2,输出一个正数;若s1 = s2, 输出0,否则输出负数。不要用 strcmp 函数。
题解思路
两个字符串用gets函数读入,输出正数或负数的绝对值应是相比较的两个字符串相应字符的ASCII的差值
运行代码
int main()
{
int i = 0;
int result = 0;
char s1[100];
char s2[100];
printf("输入字符1:");
gets(s1);
printf("\n输入字符2:");
gets(s2);
while ((s1[i] == s2[i]) && (s1[i] != '\0'))
{
i++;
}
if (s1[i] == '\0' && s2[i] == '\0')
{
result = 0;
}
else
{
result = s1[i] - s2[i];
}
printf("\n输出结果:%d\n", result);
return 0;
}
运行结果
编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中。不用 strcpy 函数。复制时,‘\0 '也要复制过去。'\0'后面的字符不复制
运行代码
int main()
{
char str1[80];
char str2[80];
int i = 0;
printf("输入要复制的字符串:");
scanf("%s", str2);
for (i = 0; i <= strlen(str2); i++)
{
str1[i] = str2[i];
}
printf("复制后的字符串是:%s\n", str1);
return 0;
}
运行结果
写一个函数,将一个字符串中的元音字母复制到另一字符串,然后输出。
运行代码
int main()
{
void copy(char s[], char c[]);
char str[80];
char character[80];
printf("输入字符串:");
gets(str);
copy(str, character);
printf("元音字母是:%s\n", character);
return 0;
}
void copy(char s[], char character[])
{
int i = 0;
int j = 0;
for (i = 0, j = 0; s[i] != '\0'; i++)
{
//判断是不是元音字母
if (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u' || s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O'|| s[i] == 'U')
{
character[j] = s[i];
j++;
}
else
{
character[j] = '\0';
}
}
}