第九章
练习9-3
//编写一段程序,对代码清单9-7进行如下改写。
#include <stdio.h>
#define NUMBER 5
int main(void)
{
int i,j=0;
char s[NUMBER][128];
for (i=0; i<NUMBER; i++) {
printf("s[%d] : ",i);
scanf("%s",s[i]);
if ( strcmp(s[i],"$$$$$")== 0 )
break;
j++;
}
printf("\n");
for(i=0; i<j; i++) {
printf("s[%d] = \"%s\"\n",i,s[i]);
}
return 0;
}
练习9-5
//编写如下函数,若字符串s中含有字符c(若含有多个,以先出现的为准),则返回该元素的下标,否则返回1。
#include <stdio.h>
int str_char (const char s[], int c)
{
int i=0;
while ( s[i]) {
if (s[i] == c )
return i;
i++;
}
return -1;
}
int main(void)
{
char s[128],i;
char c;
printf("请输入字符串:");
scanf("%s",s);
fflush(stdin); //清除标准输入流区的缓存,标准输入流在最后一章有讲到。
printf("请输入字符:");
scanf("%c",&c); //或:c = getchar(); %c是字符的转换说明。
i = str_char(s,c);
if (i == -1) {
printf("\n字符串%s中没有%c!",s,c);
}
else {
printf("\n字符串%s的第%d个字符为%c。",s,i+1,c);
}
return 0;
}
练习9-6
//编写如下函数,返回字符串s中字符c的个数(没有则返回0)。
#include <stdio.h>
int str_chnum (const char s[], int c)
{
int i=0,j=0;
while ( s[i]) {
if (s[i] == c) {
j++;
}
i++;
}
return j;
}
int main(void)
{
char s[128],i;
char c;
printf("请输入字符串:");
scanf("%s",s);
fflush(stdin);
printf("请输入字符:");
scanf("%c",&c);
i = str_chnum(s,c);
if (i == 0) {
printf(