#include <stdio.h> #include <____1____> int main() { char s[81];int i; gets(s); for(___2___;i<strlen(s);) if(s[i]=='c') strcpy(____3____); ___4___ i++; puts(s); }填空
时间: 2023-12-03 21:05:28 浏览: 38
好的,下面是代码填空的答案:
```c
#include <stdio.h>
#include <string.h> //填空1
int main() {
char s[81];
int i = 0; //填空2
gets(s);
for(;i<strlen(s);)
if(s[i]=='c')
strcpy(s+i,"cccc"); //填空3
else
i++; //填空4
puts(s);
return 0;
}
```
其中,第一个空需要包含字符串操作函数,此处是 `string.h`。第二个空需要将计数器 i 的初始值赋为 0,此处是 `int i = 0;`。第三个空需要在字符串 s 中从 i 开始插入 "cccc",此处是 `strcpy(s+i,"cccc");`。第四个空需要将计数器 i 加 1,即跳过已经替换过的字符,此处是 `i++;`。
相关问题
完善以下程序#include <stdio.h> #include <string.h> #include <___1___> void f(char *s) { ___ 2___; while(s[i]!='\0') if(isdigit(s[i])) ____3____(s+i,s+i+1); ___4___ i++; } int main() { char str[80]; gets(str); f(str); puts(str); }
完善以下程序:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void f(char *s) {
int i = 0;
while(s[i] != '\0') {
if(isdigit(s[i])) {
memmove(s+i, s+i+1, strlen(s+i+1)+1);
}
else {
i++;
}
}
}
int main() {
char str[80];
gets(str);
f(str);
puts(str);
return 0;
}
```
在这个程序中,函数 `f` 的作用是删除字符串中的所有数字字符。具体地,它遍历字符串中的每一个字符,如果它是数字字符,则将其从字符串中移除。
在实现中,我们使用了 `isdigit` 函数来判断一个字符是否是数字字符,使用了 `memmove` 函数来移动字符串中的字符。在移动字符时,我们使用了 `strlen` 函数来计算需要移动的字符数,并在最后添加一个空字符,以确保字符串的结尾正确。
3. #include <stdio.h> #include <string.h> struct worker{ char name[20]; int age; char sex; int id; } w; int main(){ w.name="liming"; //____错误3____ w.age=21; w.sex="M"; //____错误4____ w.id=1;
在这段代码中,有两处错误:
1. 在结构体定义中,应该使用大括号将结构体成员括起来,否则会导致编译错误。
2. 在给字符类型的成员赋值时,需要使用单引号`'`而不是双引号`"`。
因此,修改后的代码如下:
```c
#include <stdio.h>
#include <string.h>
struct worker{
char name[20];
int age;
char sex;
int id;
} w;
int main(){
strcpy(w.name, "liming");
w.age = 21;
w.sex = 'M';
w.id = 1;
return 0;
}
```
在这个示例中,我们使用`strcpy`函数将字符串赋值给`name`成员,使用单引号将字符赋值给`sex`成员。
阅读全文