null第五章 第五章 字符串
目标目标理解字符串常量
理解字符数组和字符串的异同
使用字符串输入/输出函数
使用字符串处理函数
字符串简介字符串简介char a='W';
char b='a';
char c='n';
char d='g';
char e='L';
char f='i';如何让程序存储我的姓名?Wang Lichar name[15]={ 'W', 'a', 'n', 'g', 'L', 'i'}; 用若干个字符用字符数组用字符串字符串常量字符串常量字符串常量是双引号括起的任意字符序列"Hello World"
"WangPing"
"Please enter your full name:"
"Hello \“haitian\""字符串常量中可以包含转义序列字符串结束符字符串与字符数组字符串与字符数组在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串
字符数组和字符串的区别是:字符串的末尾有一个空字符 ‘\0’字符串可按如下方式声明并初始化:
char name[15]={ 'W', 'a', 'n', 'g', 'L', 'i', '\0'};
char name[15] = "WangLi";
char password[] = "12345678";手工加入一个空字符系统将自动加入一个空字符省略数组大小,系统自动计算,大小为后面的字符总数加1,最后一个元素存入一个空字符。 字符串I/0函数3-1字符串I/0函数3-1char name[10];scanf("%s", name);printf("%s", name);格式描述串中使用转换字符串“%s”Wang LiWang字符串I/0函数3-2字符串I/0函数3-2char name[10];
gets(name);
puts(name);Wang LiWang Li从键盘上读入一个完整的行,存入字符数组name。并用空字符'\0'取代行尾的换行符'\n'。把字符数组中的字符串输出到显示器。字符串I/0函数3-3字符串I/0函数3-3puts 函数完全可以由 printf 函数取代。 当需要按一定格式输出时,通常使用 printf 函数。 printf("\n 雇员姓名是: ");
puts(name);
printf("\n 雇员所属部门是: ");
puts(dept);printf("\n 雇员姓名是:%s",name);
printf("\n 雇员所属部门是:%s\n",dept);使用puts函数输出字符串使用printf函数输出字符串字符串示例字符串示例#include
void main()
{
char line[30];
int i,count = 0;
printf("\n 请输入一行字符:\n ");
gets(line);
i=0;
while(line[i] != '\0')
{
if(line[i] == ' ')
count++;
i++;
}
printf(“\n 其中的空格总数为 %d \n ",count);
}C is a programming language在循环执行时,扫描整个数组以统计出空格 ‘ ‘ 的数量,直到遇到字符 ’\0’。每次循环执行时,都会更新计数器 i 和 count。其中的空格总数为 4字符串处理函数 5-1字符串处理函数 5-1与字符串有关的内置函数在头文件string.h中定义
要使用
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
库字符串处理函数,程序前应该包含:
#include string.hstrlenstrcpystrcmpstrcat……字符串处理函数 5-2字符串处理函数 5-2语法
strlen(s);
描述
计算字符串s中字符的个数,并将字符的个数作为函数的返回值。在计算字符个数时不计表示字符串结束的空字符'\0'。strlen#include
#include
void main()
{
char arr[] = "Beijing";
int len1, len2;
len1 = strlen(arr);
len2 = strlen("Shanghai");
printf("\n string = %s length = %d", arr, len1);
printf("\n string = %s length = %d \n","Shanghai",len2);
} string = Beijing length = 7
string = Shanghai length = 8字符串处理函数 5-3字符串处理函数 5-3语法
strcpy(dest,src)
描述
其中,dest是目标字符串,src是源字符串。相当于把字符数组src中的字符串拷贝到字符数组dest中。结束标志'\0'也一同拷贝。src可以是一个字符串常量。字符数组dest应足够大,以保证字符串复制不越界。strcpy#include
#include
void main()
{
char source[] = "We change lives";
char target[20];
strcpy(target,source);
printf("\n 源字符串 = %s", source);
printf ("\n 目标字符串 = %s\n", target);
}
源字符串 = We change lives
目标字符串 = We change lives字符串处理函数 5-4字符串处理函数 5-4语法
strcmp(str1, str2)
描述
按照ASCII码顺序比较字符串str1和str2的大小,比较的结果由函数返回。在两个字符串str1和str2相同时返回0;字符串str1大于字符串str2时返回一个正值,否则就返回负值。strcmp#include
#include
void main()
{
char username[15],pwd[15];
printf("\n 请输入用户名: " );
gets(username);
printf("\n 请输入密码: ");
gets(pwd);
if((strcmp(username,"John")==0) &&
(strcmp(pwd,"123456")==0))
printf("\n 您已成功登录 \n ");
else
printf("\n 用户名和/或密码无效 \n ");
} 请输入用户名: john
请输入密码: 123456
用户名和/或密码无效 请输入用户名:John
请输入密码: 123456
您已成功登录字符串处理函数 5-5字符串处理函数 5-5语法
strcat(dest, src)
描述
把字符串 src中的字符串连接到字符串 dest中字符串的后面。本函数返回值是字符数组dest的首地址。连接后字符串的总长度将是字符串 src 的长度加上字符串 dest的长度。目标字符串dest的大小应足够存储最终的字符串。strcat#include
#include
void main()
{
char source_string[] = "is very good";
char target_string[30] = “C";
strcat(target_string,source_string);
printf("\n 源字符串 = %s", source_string);
printf("\n 目标字符串 = %s\n", target_string);
}
源字符串 = is very good
目标字符串 = C is very good总结总结字符串与字符数组的区别是字符串的末尾有一个空字符'\0'以标识字符串结束
用scanf()语句读入字符串时不允许输入中存在空格
gets() 和 puts() 函数分别用于字符串的输入和输出
在 string.h 中定义了很多字符串处理函数函数,比较常用的有:strcpy()、strcat()、strcmp() 和 strlen()
假如程序里需要一组字符串,一种常用的做法就是用一个字符指针数组表示它们
字符串可以作为参数,函数传递机制同数组作为参数,为引用方式