字符数组应用举例:
输入一个句子(一行字符),统计其中有多少个单词,句子中各个单词用至少一个空格分开;
分析:
定义一个存放句子的字符数组及相对应的变量;
输入句子
统计单词个数
输出单词个数;
关键:如何统计???
从串首字符直到字符串结束,依个检查字符串个字符;如果相邻两个字符前为空格,后为空格,则单词数加一;
但句子的第一个单词不是以空格开始的,直接这样统计会缺漏,所以单词数初值应该为1;
#include <stdio.h>
int main()
{
char str[255];
int i,num=0;
gets(str);
if(str[0]!=' ')
num=1;
for(i=0;str[i];i++)
{
if(str[i]==' '&&str[i+1]!=' ')
{
num++;
}
}
printf("words:%d\n",num);
return 0;
}
例2:连接两个串:把字符串str2连接到字符串str1之后。如果字符数组str1的存储空间不够,
直到把str1填满为止。
思路是:
1、定义存放两个串的字符数组及相关变量
2、输入两个串
3、定位串1的串结束符;
4、依次将串2的每个字符连接到串1后,直至串2处理完或者存放串1的数组空间不够;
5、在连按好后,末尾填入字符串结束符
#include <stdio.h>
int main()
{
char str1[10],str2[10];
int i=0,j=0;
gets(str1);gets(str2);
while(str1[i])
i++;
while(str2[j]&&i<9)
{
str1[i]=str2[j];
i++;
j++;
}
str1[i]='\0';
puts(str1);
return 0;
}