一、字符串处理函数
1、puts(字符数组)
其作用是将一个字符串(以'\0'结束的字符序列)输出到终端。假如已定义str是一个字符串数组名,且该数组已被初始化为“China”,则执行
puts(str);
那么终端将显示"China"字符串。由于可以用printf函数输出字符串,因此puts函数用的不多
注:用puts函数输出的字符串中可以包含转义字符,例如
#include "stdafx.h"
#include <Strsafe.h>
int _tmain(int argc, _TCHAR* argv[])
{
char str[]={"China\nBei jing"};
puts(str);
getchar();
return 0;
}
输出结果:
在输出时将结束标志'\0'转换为'n',即输出完字符串后换行
2、gets函数
作用是从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址
例如:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char string[20];
gets(string);
printf("The string is:%s\n",string);
system("PAUSE");
return 0;
}
注意:用puts和gets函数只能输出或输入一个字符串,不能写成
puts(str1,str2)或gets(str1,str2)
3、strcat函数
一般形式strcat(字符数组1,字符数组2);
strcat是字符串连接的意思,其作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符串1中,函数调用后得到一个函数值---字符数组1的地址。例如
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char str1[30] = {"People's Republic of"};
char str2[] = {" China"};
printf("%s",strcat(str1,str2));
system("PAUSE");
return 0;
}
运行结果:
注意:
①字符数组1必须足够大,以便容纳连接后的新字符串。
②连接前两个字符串的后面都有'\0',连接时候将字符串1后面的'\0'取消,只在新串最后保留'\0'
4、strcpy和strncpy函数
一般形式
strcpy(字符数组1,字符串2)
作用是字符串复制,即将字符串2复制到字符数组1中,例如
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char str1[10]="",str2[]={"China"};
strcpy(str1,str2);
printf("str1=%s\n",str1);
system("PAUSE");
return 0;
}
运行结果:
注意:
①字符数组1必须足够大
②字符数组1必须是数组名形式,字符数组2可以是字符串
strncpy函数将紫飞虎传2中当前n个字符复制到字符数组1中去。例如
strncpy(str1,str2,2)
作用是将str2中最前面2个字符复制到str1中,取代str1中原有的最前面的2个字符。但复制的字符个数n不应多于str1中原有的字符(不包括'\0')
5、strcmp函数
一般形式
strcmp(字符串1,字符串2)
它的作用是比较字符串1和字符串2,例如
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char str1[10]="abc",str2[]={"China"};
if(strcmp(str1,str2))
{
printf("str1 > str2\n");
}
if(strcmp("Hello","America"))
{
printf("Hello > America\n");
}
system("PAUSE");
return 0;
}
字符串比较规则:
"A"<"B","a"<"b","a">"A"
注意:
①如果字符串1=字符串2,则函数值为0
②如果字符串1>字符串2,则函数值为一个正整数
③如果字符串1<字符串2,则函数值为一个负整数
6、strlen函数
它是测试字符串长度的函数,函数值为字符串中实际长度(不包括'\0'在内),例如
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char str[10]={"China"};
printf("The length is %d\n",strlen(str));
system("PAUSE");
return 0;
}
输出结果不是10,也不是6,而是5
7、strlwr函数
strlwr(字符串)
作用是将字符串中国的大写字母换成小写字母
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char str[10]={"China"};
printf("The string is %s\n",strlwr(str));
system("PAUSE");
return 0;
}
8、strupr函数
其一般形式为
strupr(字符串)
作用是将字符串中小写的字母转换为大写字母
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char str[10]={"China"};
printf("The string is %s\n",strupr(str));
system("PAUSE");
return 0;
}
二、统计一句话的单词个数
例子:
输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
char string[81];
int i,num = 0,word = 0;
char c;
gets(string);
for (i=0;(c=string[i])!='\0';i++)
{
if(c == ' ')word=0;
else if (word == 0)
{
word = 1;
num++;
}
}
printf("There are %d words in the line.\n",num);
getchar();
return 0;
}
运行结果:
程序中变量i作为循环变量,num用来统计单词个数,word作为判别是否单词的标志,若word=0表示未出现单词,如果出现单词word就设置成1.
解题思路:
单词的数目可以由空格出现次数决定(连续的若干个空格作为出现一次空格;一行开头的空格不统计在内)。如果测出某一个字符为非空格,而它的面前的字符是空格(通过if(word == 0)来判断),则表示“新单词开始了”,此时使num(单词数)累加1.如果当前字符为非空格而其前面的字符也是非空格,则意味着仍然是原来那个单词的继续,num不应该在累加1,前面一个字符是否空格可以从word的值看出来,若word等于0,则表示前一个字符是空格;如果word等于1,意味着前一个字符为非空格。
如果输入"I am a boy",对每个字符的有关参数状态如下:
当前字符
|
﹄
|
I
|
﹄
|
a
|
m
|
﹄
|
a
|
﹄
|
b
|
o
|
y
|
.
|
是否空格
|
是
|
否
|
是
|
否
|
否
|
是
|
否
|
是
|
否
|
否
|
否
|
否
|
Word原值
|
0
|
0
|
1
|
0
|
1
|
1
|
0
|
1
|
0
|
1
|
1
|
1
|
新单词开始否
|
否
|
是
|
否
|
是
|
否
|
否
|
是
|
否
|
是
|
否
|
否
|
否
|
Word新值
|
0
|
1
|
0
|
1
|
1
|
0
|
1
|
0
|
1
|
1
|
1
|
1
|
Num值
|
0
|
1
|
1
|
2
|
2
|
2
|
3
|
3
|
4
|
4
|
4
|
4
|
注意:程序中for语句中的“循环条件”为
(c=string[i])!='\0'
它的作用是先将字符数组的某个元素(一个字符)赋给字符变量c。此时赋值表达式的值就应该是该市该字符,然后再判定它是否结束符,这个循环条件包含了一个赋值操作和一个关系操作。
- 大小: 3.8 KB
- 大小: 3.7 KB
- 大小: 4 KB
- 大小: 3.5 KB
- 大小: 3.2 KB
- 大小: 3.5 KB
- 大小: 3.8 KB
- 大小: 3.3 KB
- 大小: 3.4 KB
分享到:
相关推荐
统计输入字符串中的单词个数:编写一个程序,输入若干行文本,然后用函数strtok统计单词的总数,假设单词是以空格分隔
编写程序统计一组字符串中,单词(用空格隔开的连续的字符)的个数,大写字母的个数,小写字母的个数,数字的个数,空格的个数和其他字符的个数,调用函数实现
第 1 行为一个字符串,其中只含字母,表示给定单词; 第 2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。 【输出】 只有一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔...
2、为string类提供必要的成员函数,可以参考C++类库的string类提供了那些成员函数,至少应包括下标访问,子串查找、获得C风格字符串、获得字符串长度、字符串比较这几个函数 3、利用该string类完成测试程序:统计一...
编写二个函数,其中一个函数func1完成功能为:接收字符串参数,返回一个元组,其中第一个元素为字符串中大写字母个数,第二个元素为字符串中小写字母个数;另一个函数func2的功能为随机产生一个长度不小于10的字符串...
其功能是统计w指向的数组中的n个单词在a指向的字符串中各自出现的次数(将非字母字符看做单词分隔符),并将统计结果依次保存在b指向的数组中。 ⑵ 编写main()函数,采用数组定义的同时进行初始化的方式,将数据...
数组x中存有20个四位整数,请编制函数,求出正整数的个数tn。以及百位数字大于十位数字数的个数tc,以及满足条件的这些数的算术平均ta.,将tn,tc,ta在控制台输出。
vs2008下使用C#编写,统计windows某个文件目录下所有的文本文档(.txt .cpp .h)中所有单词出现的次数,并按照次数大小以及字典序输出到文本文件中 在MSRA上高级软件工程时的课程作业1,具体说明参见user_guide.docx
1.编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,以元组的形式返回结果,最后调用这个函数并传递参数,输出函数的返回结果。要求不是大写字母、小写字母、数字的任意字符都记入其他...
PHP统计字符串里单词出现次数 PHP缩略图类,可生成BMP格式 PHP自定义大小验证码函数 PHP获取.NET发出的WEBSERVICE数据 PHP获取FLV文件播放时间函数 PHP获取一年内所有周的开始和结束日期 php获取指定日期所在...
有关于,PHP中字符串的处理的相关函数,strlen()函数统计字符串中字符的个数,str_word_count()函数统计字符串中单词的个数,strrev()函数使字符串实现反转,strpos()函数查找字符串内相匹配字符的第一个字符的位置...
通过dictionary对指定txt文件进行读取,显示文件中最高频率出现的100个单词
此函数将字符串或字符串元胞数组中的每个单词大写,但用户可定义的短单词集除外。 默认的非大写单词是“a”、“an”、“and”、“or”、“the”和“in”。 例子: >> C={'公园散步''一石两鸟''付吹笛人'}'; >> ...
给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。 回文串是指正反两个方向都一样的单词或短语,排列是指字母重新排列,回文串不一定是字典中的单词。 例如: 输入:“tactcoa” 输出:True(排列有...
本文实例讲述了python统计字符串中指定字符出现次数的方法。分享给大家供大家参考。具体如下: python统计字符串中指定字符出现的次数,例如想统计字符串中空格的数量 s = "Count, the number of spaces." print s....
50006 使用函数统计一个整数中数字的个数 45 50007 使用函数找水仙花数 46 50009 使用函数求余弦函数的近似值 48 50052 使用函数找最大值 49 50062 使用函数输出指定范围内的 Fibonacci 数 50 50063 使用函数找出...
从键盘输入字符(最多为80个),遇到回车键输入结束,将输入的字符串按奇偶位置拆分,奇数位上的字符在前,偶数位上的字符在后,重新组成新的字符串输出,例如输入: ab12cd3456fg,则经过程序处理后输出: a1c35fb2d...
5.设计一个网页,输入一串用英文逗号分隔的数字字符串。编写程序,输出找出该组数中的最大、最小值、和 。并按从大到小排序后的输出结果(以逗号分隔)。 6. 要求用户在文本框中年份,点击判断按钮,用alert函数输出...
2、为string类提供必要的成员函数,可以参考C++类库的string类提供了那些成员函数,至少应包括下标访问,子串查找、获得C风格字符串、获得字符串长度、字符串比较这几个函数 3、利用该string类完成测试程序:统计一...
2、为string类提供必要的成员函数,可以参考C++类库的string类提供了那些成员函数,至少应包括下标访问,子串查找、获得C风格字符串、获得字符串长度、字符串比较这几个函数 3、利用该string类完成测试程序:统计一...