C语言删除重复字符 回文数判断 单词统计 合法C标识符 奖学金 密码翻译
时间: 2023-09-12 13:05:25 浏览: 42
好的,让我来回答你的问题。
1. C语言删除重复字符:可以使用双重循环遍历字符串,比较每个字符是否重复,若重复则删除。
2. 回文数判断:可以将数字转化为字符串,再将字符串反转,最后比较反转后的字符串与原字符串是否相同。
3. 单词统计:可以使用空格分割字符串,然后统计单词的个数。
4. 合法C标识符:C标识符由字母、数字和下划线组成,且首字符必须是字母或下划线。可以使用正则表达式来判断是否是合法的C标识符。
5. 奖学金:可以根据学生的成绩排名来确定获得奖学金的人数和金额。
6. 密码翻译:可以使用加密算法对密码进行加密,也可以使用解密算法对加密后的密码进行解密。常见的加密算法有MD5、SHA等。
希望能够对你有所帮助。
相关问题
C语言 删除重复字符 回文数判断 单词统计 合法C标识符 奖学金 密码翻译
好的,我会尽力回答你的问题。
1. C语言删除重复字符
可以使用一个数组来存储已经出现的字符,遍历输入的字符串并将未出现过的字符添加到该数组中,最后输出数组即可。
2. 回文数判断
可以将输入的数转换为字符串,然后判断字符串是否与它的反转字符串相同即可。
3. 单词统计
可以使用一个计数器变量来记录输入字符串中单词的数量。遍历字符串,每当遇到一个空格时,计数器加一。
4. 合法C标识符
C语言标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线。可以遍历输入字符串,判断每个字符是否为合法字符,同时判断第一个字符是否为合法字符即可。
5. 奖学金
可以定义一个结构体来存储学生的信息,包括姓名、成绩等。然后使用一个数组来存储所有学生的信息,遍历数组并根据成绩进行排序,最后输出前三名学生的信息即可。
6. 密码翻译
可以将输入的字符串中的每个字符替换为它在ASCII码表中的下一个字符,即将每个字符的ASCII码加一,最后输出翻译后的字符串即可。
希望我的回答能够帮到你!
写一下C语言程序: 删除重复字符 回文数判断 单词统计 合法C标识符 奖学金 密码翻译
好的,我会为你提供这些问题的C语言程序实现。
1. 删除重复字符
```c
#include <stdio.h>
#include <string.h>
void remove_duplicate_chars(char str[]) {
int len = strlen(str);
int i, j, k;
for (i = 0; i < len; i++) {
for (j = i + 1; j < len; j++) {
if (str[j] == str[i]) {
for (k = j; k < len; k++) {
str[k] = str[k + 1];
}
len--;
j--;
}
}
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
gets(str);
remove_duplicate_chars(str);
printf("删除重复字符后的字符串为:%s\n", str);
return 0;
}
```
2. 回文数判断
```c
#include <stdio.h>
#include <string.h>
int is_palindrome(int num) {
char str[10];
sprintf(str, "%d", num);
int len = strlen(str);
int i;
for (i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
return 0;
}
}
return 1;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (is_palindrome(num)) {
printf("%d是回文数\n", num);
} else {
printf("%d不是回文数\n", num);
}
return 0;
}
```
3. 单词统计
```c
#include <stdio.h>
#include <string.h>
int count_words(char str[]) {
int len = strlen(str);
int i, count = 0;
for (i = 0; i < len; i++) {
if (str[i] == ' ' || str[i] == '\n' || str[i] == '\t') {
count++;
}
}
return count + 1;
}
int main() {
char str[1000];
printf("请输入一段文本:\n");
fgets(str, sizeof(str), stdin);
int count = count_words(str);
printf("单词数为:%d\n", count);
return 0;
}
```
4. 合法C标识符
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int is_valid_identifier(char str[]) {
int len = strlen(str);
int i;
if (!isalpha(str[0]) && str[0] != '_') {
return 0;
}
for (i = 1; i < len; i++) {
if (!isalnum(str[i]) && str[i] != '_') {
return 0;
}
}
return 1;
}
int main() {
char str[100];
printf("请输入一个标识符:");
scanf("%s", str);
if (is_valid_identifier(str)) {
printf("%s是合法的C标识符\n", str);
} else {
printf("%s不是合法的C标识符\n", str);
}
return 0;
}
```
5. 奖学金
```c
#include <stdio.h>
int main() {
int n, i;
double score, sum = 0, max = 0;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%lf", &score);
sum += score;
if (score > max) {
max = score;
}
}
double avg = sum / n;
if (avg >= 80 && max >= 90) {
printf("奖励1000元\n");
} else if (avg >= 80) {
printf("奖励800元\n");
} else if (avg >= 60) {
printf("奖励500元\n");
} else {
printf("很遗憾,没有奖励\n");
}
return 0;
}
```
6. 密码翻译
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str[100];
printf("请输入需要翻译的字符串:");
fgets(str, sizeof(str), stdin);
int len = strlen(str);
int i;
for (i = 0; i < len; i++) {
if (isalpha(str[i])) {
if (isupper(str[i])) {
str[i] = 'A' + ('Z' - str[i]);
} else {
str[i] = 'a' + ('z' - str[i]);
}
}
}
printf("翻译后的字符串为:%s\n", str);
return 0;
}
```
希望这些程序能够帮助到你,如果有任何问题欢迎提出。