码迷,mamicode.com
首页 > 其他好文 > 详细

第七周

时间:2016-07-14 18:58:59      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

7.1 字符串

1.字符串有三种形式:

(1)用双引号括起来的字符串常量。  eg. "CHINA", "C++ Program"

(2)存放于字符数组中,以‘\0‘字符(ASCII码为0)结尾。

(3)string对象。

2.字符串常量占据内存的字节数等于字符串中字符数目+1,多出来的是结尾字符‘\0‘,字符串的长度不包括‘\0‘。

3.""也是合法的字符串常量,称为空串,仍然会占据一个字节的存储空间存放‘\0‘。

4.如果字符串常量中包含双引号,则双引号应写为‘\"‘。而‘\‘字符在字符串中出现时应写为‘\\‘。

  eg. cout << "He said:\"I am a stu\\dent.\"";  -> He said:"I am a stu\dent."

5.包含‘\0‘字符的一维char数组,就是一个字符串,存放时数组元素个数至少为字符串长度+1。用cin、scanf将字符串读入字符数组时,会自动在末尾加上‘\0‘。

6.用scanf读入时到空格为止,数组长度不足的情况下,可能导致数组越界。

7.cin.getline(char buf[], int bufsize);  读入一行(行长度不超过bufsize-1)或bufsize-1个字符到buf,自动添加‘\0‘,回车换行符不会写入buf而是从输入流中去掉。

8.gets(char buf[]);  读入一行,自动添加‘\0‘,回车换行符不会写入buf而是从输入流中去掉,可能导致数组越界。

9.字符串函数都根据‘\0‘来判断字符串结尾,形参为char []类型时,实参可以是char数组或字符串常量。

10.strlen函数的执行是需要时间的,且时间和字符串的长度成正比。可以取出s的长度存放在一个变量里面。

  eg.int len = strlen(s);  或  for(int i=0; s[i]; i++);

 

作业

 1.统计数字字符个数

Description:输入一行字符,统计出其中数字字符的个数。

Input:一行字符串,总长度不超过255。

Output:输出为1行,输出字符串里面数字字符的个数。

Sample Input:Peking University is set up at 1898.

Sample Output:4

 1 #include <cstdio>
 2 
 3 #define maxn 255
 4 char str[maxn+10];
 5 
 6 int main()
 7 {
 8     //freopen("D:\\temp\\test\\tmp.txt", "r", stdin);
 9 
10     gets(str);
11     int counter = 0;
12     for(int i=0; str[i]; i++) {
13         if(str[i]>=0 && str[i]<=9)
14             counter++;
15     }
16 
17     printf("%d\n", counter);
18 
19     return 0;
20 }

2.找到第一个只出现一次的字符

Description:给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。

Input:一个字符串,长度小于100000。

Output:输出第一个仅出现一次的字符,若没有则输出no。

Sample Input:abcabd

Sample Output:c

 

第七周

标签:

原文地址:http://www.cnblogs.com/VincentValentine/p/5668196.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!