用c代码编译:输入一个长度不超过100的字符串,将字符串中的所有数字都删除。
时间: 2023-12-10 21:39:57 浏览: 78
以下是使用C语言编写的代码,实现输入一个长度不超过100的字符串,将字符串中的所有数字都删除的功能。
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str[101];
int i, j;
printf("请输入一个字符串:");
fgets(str, 101, stdin); // 从标准输入读取字符串
for (i = 0, j = 0; i < strlen(str); i++) {
if (!isdigit(str[i])) { // 如果是数字则跳过
str[j] = str[i];
j++;
}
}
str[j] = '\0'; // 在字符串结尾添加 null 字符
printf("删除数字后的字符串为:%s\n", str);
return 0;
}
```
代码逻辑比较简单,使用了一个循环遍历字符串中的每个字符,如果不是数字则将其添加到新的字符串中,最后输出新的字符串即可。需要注意的是,由于输入的字符串是以回车符结束的,因此需要使用 `fgets()` 函数来读取字符串。
相关问题
用c代码编译:输入一个长度小于100的字符串,将字符串中下标为素数位置上的字母转为大写字母。
以下是用C语言编写的程序,实现输入一个长度小于100的字符串,将字符串中下标为素数位置上的字母转为大写字母:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int is_prime(int n) { // 判断一个数是否是素数
if (n < 2) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
char str[100];
printf("请输入一个字符串:");
gets(str); // 输入字符串
for (int i = 0; i < strlen(str); i++) {
if (is_prime(i)) { // 判断下标是否为素数
str[i] = toupper(str[i]); // 转为大写字母
}
}
printf("转换后的字符串为:%s\n", str);
return 0;
}
```
说明:
1. `is_prime` 函数用于判断一个数是否为素数,其中使用了常见的素数判断方法,即从2到该数的平方根之间遍历,判断是否能被整除。
2. `toupper` 函数用于将小写字母转为大写字母。
3. `gets` 函数用于从标准输入(键盘)读取一行字符串,但不包括末尾的换行符。
4. `strlen` 函数用于计算字符串的长度。
用c代码编译:输入两个长度小于100的字符串,输出他们共有的字符数量。
以下是一个用C语言编写的示例程序,可以实现输入两个长度小于100的字符串,输出它们共有的字符数量:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str1[MAX_LEN], str2[MAX_LEN];
int i, j, cnt = 0;
// 输入两个字符串
printf("请输入第一个字符串:");
fgets(str1, MAX_LEN, stdin);
printf("请输入第二个字符串:");
fgets(str2, MAX_LEN, stdin);
// 统计共有的字符数量
for (i = 0; i < strlen(str1); i++) {
for (j = 0; j < strlen(str2); j++) {
if (str1[i] == str2[j]) {
cnt++;
break;
}
}
}
// 输出共有的字符数量
printf("共有%d个字符相同\n", cnt);
return 0;
}
```
该程序使用了双重循环来遍历两个字符串中的每个字符,并使用一个计数器变量来统计共有的字符数量。请注意,fgets()函数用于从标准输入中读取字符串,可以防止输入缓冲区溢出问题。