返回:贺老师课程教学链接
1、编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述的结果。请将下面的程序补充完整。
#include<stdio.h> #include<string.h> #include<ctype.h> void fltj(char str[], int a[]) { int ll,i; ll=___(1)____ for (i=0; i<ll; i++) { if (___(2)____) a[0]++; else if (___(3)____) a[1]++; else if (___(4)____) a[2]++; else a[3]++; } } int main() { static char str[60]; static int a[4]= {0,0,0,0}; gets(str); fltj(str,a); printf("%s char:%d digit:%d space:%d other:%d",str,a[0],a[1],a[2],a[3]); return 0; }
2、有一行文字,要求删去某一个字符。此行文字和要删去的字符均由键盘输入,要删去的字符以字符形式输入(如输入a表示要删去所有的 a字符)。请补充完整下面的程序。
#include<stdio.h> int main() { /*str1表示原来的一行文字,str2表示删除指定字符后的文字*/ char str1[100],str2[100]; char ch; int i=0,k=0; printf("please input an sentence:\n"); gets(str1); scanf("%c",&ch); for (i=0; ___(1)____; i++) if (str1[i]!=ch) { str2[___(2)____]=str1[i]; k++; } str2[___(3)____]='\0'; printf("\n%s\n",str2); return 0; }
3、以下程序是将字符串b的内容连接字符数组a的内容后面,形成新字符串a,请填空使程序完整。
#include<stdio.h> int main ( ) { char a[40]="Great ", b[ ]="Wall"; int i=0,j=0 ; while (a[i]!='\0') i++ ; while (____(1)____) { a[i]=b[j] ; i++ ; j++ ; } ____(2)____; printf("%s\n",a); return 0; }
4、下面的str_count函数计算串substring在母串string中出现的次数,并将次数返回。
#include<stdio.h> #include<string.h> int str_count(char *string, char *substring) { int i,j,k; int count=0; for (i=0; ____(1)____; i++) { for (j=i,k=0; ____(2)____; k++,j++); if (____(3)____) count++; } return count; } int main ( ) { char s1[]="This is a word \'iscaspe\'. No, is \'escape\'"; char s2[]="is"; printf("%d\n", str_count(s1, s2)); return 0; }
[参考解答](倒着看,就是不想让你舒舒服服地直接得到解答,真心希望你能有自己的解答。)
时间: 2024-09-13 13:04:38