程序填空:#include "stdio.h" void delnum(char *s) { int i,j; for(i=0,j=0; _____'\0' ;i++) if(s[i]<'0'_____ s[i]>'9') { s[j]=s[i]; j++; } s[j]='\0'; } main () { char *item; printf("\n input a string:\n"); gets(item); delnum(item); printf("\n%s",item); }
时间: 2024-01-28 16:05:46 浏览: 19
程序填空:
```c
#include "stdio.h"
void delnum(char *s) {
int i, j;
for (i = 0, j = 0; s[i] != '\0'; i++) {
if (s[i] < '0' || s[i] > '9') {
s[j] = s[i];
j++;
}
}
s[j] = '\0';
}
int main() {
char item[100];
printf("\n input a string:\n");
gets(item);
delnum(item);
printf("\n%s", item);
return 0;
}
```
代码说明:
该程序定义了一个函数 `delnum`,它的作用是将字符串中的数字删除,只保留其它字符。该函数的参数是一个字符指针,表示要处理的字符串。函数中使用两个变量 `i` 和 `j`,分别表示遍历字符串的指针和处理后字符串的指针。在遍历字符串时,如果当前字符不是数字,则将其加入到处理后字符串中,否则跳过。最后将处理后字符串的末尾置为 `\0`,表示字符串的结束。
在 `main` 函数中,首先定义一个长度为 100 的字符数组 `item`,并使用 `gets` 函数从标准输入中读入一个字符串。接着调用 `delnum` 函数对该字符串进行处理,并输出处理后的结果。
相关问题
*定义函数实现n个字符串按字典顺序排序 开头: #include<stdio.h> #include<string.h> void fun (char *str[],int n)
好的,以下是一个实现n个字符串按字典顺序排序的示例代码:
```
#include <stdio.h>
#include <string.h>
void fun(char *str[], int n) {
int i, j;
char *temp;
// 使用冒泡排序算法
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (strcmp(str[j], str[j+1]) > 0) {
// 交换两个字符串的位置
temp = str[j];
str[j] = str[j+1];
str[j+1] = temp;
}
}
}
}
int main() {
char *str[] = {"apple", "banana", "orange", "grape", "kiwi"};
int n = sizeof(str) / sizeof(str[0]);
fun(str, n);
printf("排序后的字符串数组:\n");
for (int i = 0; i < n; i++) {
printf("%s ", str[i]);
}
printf("\n");
return 0;
}
```
在这个示例代码中,我们使用了冒泡排序算法对字符串数组进行排序。在排序过程中,我们使用了 `strcmp()` 函数来比较两个字符串的大小关系,并使用指针变量 `temp` 来交换两个字符串在数组中的位置。最后,我们输出排好序的字符串数组。
请注意,这个示例代码中的字符串数组是在程序中直接定义的。如果您需要从用户输入中获取字符串数据,请使用 `scanf()` 或其他输入函数来读取数据,并将它们存储在字符串数组中。
【程序改错】 题目:输出多个字符。 注意:不可以增加或删除程序行,也不可以更改程序的结构。 */ #include"stdio.h main(){ int i; char *a1={'a','b’,'c','d','e'}**=*ERRR*==** for(i=0;i<=5;i++) /*****RROR*=======**
这段程序有一些错误,我把它们标注在下面了:
```c
#include "stdio.h"
main() // 缺少返回值类型
{
int i;
char *a1={'a','b’,'c','d','e'} // 错误的字符数组赋值方式
**=*ERRR*==** // 无意义的语句
for(i=0;i<=5;i++) // 循环应该是 i<5
/*****RROR*=======**/ // 错误的注释格式
printf("%c",*(a1+i)); // 缺少输出语句
}
```
修改后的程序如下:
```c
#include "stdio.h"
int main()
{
int i;
char a1[] = {'a', 'b', 'c', 'd', 'e'};
for (i = 0; i < 5; i++)
{
printf("%c", *(a1 + i));
}
return 0;
}
```
输出结果为:`abcde`