1、编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述的结果。请将下面的程序补充完整。
#include<stdio.h>
#include<string.h>
#include<ctype.h>
void fltj(char str[], int a[])
{
int ll,i;
ll=strlen(str);
for (i=0; i<ll; i++)
{
if ((str[i]>='A'&&str[i]<='z')||(str[i]>='a'&&str[i]<='z')) a[0]++;
else if (str[i]>='0'&&str[i]<='9') a[1]++;
else if (str[i]==' ') 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; str[i]!='\0'<span style="font-family: 'microsoft yahei';">; i++)</span>
if (str1[i]!=ch)
{
str2[k]=str1[i];
k++;
}
str2[i]='\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 (b[j]!='\0')
{
a[i]=b[j] ;
i++ ;
j++ ;
}
a[i]='\0';
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; string[i]!='\0'; i++)
{
for (j=i,k=0; substring[k]==string[j]&&string[j]!='\0'; k++,j++);
if (substring[k]=='\0')
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;
}