题一:输入一个数字N,在输入N个姓名,输出最长的姓名,姓名之间没有空格
//解题思路:用%s进行输入,在遇到空格时自动分割N个姓名,用一个变量anslen存储最长的字符串,
//每次输入一个姓名并进行比较,ans存储最长的那个字符串,最后将ans进行输出
#include<stdio.h>
#include<string.h>
char s[105], ans[105];
int anslen;
int main() {
int N, len;
scanf ("%d",&N);
int i;
printf("输入%d个姓名:\n",N);
for (i = 0; i < N; i++) {
scanf("%s", s);
len =strlen(s); //每次求输入的长度
if (len > anslen) { //如果输入的名字长度大于len中存储的长度,更新anslen中的值,
anslen = len;
strcpy(ans, s); //将s复制到ans中
}
}
printf("输出最长的姓名:\n") ;
printf("%s\n", ans); //最长的名字串存储在ans中
return 0;
}
题二:将输入的字符串中的大小写字母都就变成下一个字母,例如输入的是'a' ,变成'b',若输入的是'z' 或者输入的是'Z',则输出'a' 或者是 'Z'
//解题思路:对于特殊的'z','Z'进行单独处理
#include<stdio.h>
#include<string.h>
char s[1005];
int main() {
scanf ("%s", s);
int len, i;
len = strlen(s);
for (i = 0; i < len; i++) {
if (s[i] == 'z') {
s[i] = 'a';
} else if(s[i] == 'Z') { //注意此处要用else if
s[i] = 'A';
} else if ((s[i] >= 'a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')) {
s[i]++;
}
}
printf("%s\n",s);
return 0;
}
题三:大数求奇偶性
//解题思路:将大数当成一个字符串输入,要想判断奇偶性可以直接判断大数最后一位的奇偶性,大数的最后一位最放到字符串的最后一个位置
#include<stdio.h>
#include<string.h>
char s[10005];
int main()
{
scanf ("%s",s);
int len;
len = strlen(s);
if ((s[len-1]-'0') % 2 == 0) { //判断最后一位的奇偶性,按照字符的形式存在数组中,要 -'0'
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
题四:字符串反转
//解题思路:将字符串倒序输出即可
#include<stdio.h>
#include<string.h>
char s[10005];
int main() {
scanf ("%s",s);
int len, i;
len = strlen(s);
for (i = len-1; i >= 0; i--) { //反向输出
printf("%c",s[i]);
}
printf("\n");
return 0;
}
题五:输入若干个单词,求最后一个单词的长度
//解题思路:EOF = End of File 只有当输入crtl + z时程序结束,详细的解释大家可以找找资料
#include<stdio.h>
#include<string.h>
char s[10005];
int main() {
while (scanf ("%s",s) != EOF); //不断地读取单词,循环结束后 s 为最后一个单词
printf("%d\n",strlen(s));
return 0;
}