字符串的学习

循环语句中else与最近的if形成匹配,不是按照字符对齐进行

想要else与特定的if进行匹配就可以把影响的if语句用{}括起来,形成语句块

switch语句是通过switch后面的()内的值对应的case中的值来输出值的,适合用于多分枝语句的应用

表达式为

switch(整型表达式)

{

      语句项//是一些case语句,case后面是一些整型常量表达式,比如case 1

}

字符串

总结:如果希望读取的字符串中不包含空格,那么使用 scanf() 函数,因为在scanf函数输入带空格的字符串时,遇到空格就会终止,只会输入空格之前的字符串;如果希望获取整行字符串,那么使用 gets() 函数,它能避免空格的截断。

gets()和puts()函数只能输入和输出一个字符串,不可输出多个,而scanf()和printf()可输入输出多个。如puts(str1,str2);是错误的写法。

字符串连接函数

基本形式:strcat(字符数组1,字符数组2)

int main(void)

{

 char str1[15] = "hello"; //字符数组1

 char str2[6] = "world"; //字符数组2

 strcat_s(str1, str2);

 printf("%s\n",str1);

 return 0;

}

1、字符串2连接到字符串1的后面,将连接后的结果放在字符数组1中,最后得到字符数组1的地址

2、两个字符串后面均有结束符’\0’,在连接时字符串1后面的结束符会被取消,只在新串最后保留结束符

字符串复制函数:

基本结构

strcpy(字符数组1,字符数串2或者字符数组名)

strncpy(字符数组1,字符串2或者字符数组名,n)

int main(void)

{

 char str1[15];

 char str2[6] = "world";

 strcpy_s(str1, str2);//将str2字符数组复制到str1中,str1的容量必须比str2大

 printf("%s\n",str1);

 strncpy_s(str1, str2, 3);//将前3个字符复制到str1中

 puts(str1);

 return 0;

}

不能用赋值语句将字符串常量或者字符数组直接赋值给字符数组,如str1=“world”;这写法是错误的,必须要用strcpy()函数,用赋值语句将一个字符赋值给字符型变量或者字符数组是可以的

字符串比较函数:

基本结构:strcmp(字符串1或者字符数组,字符数串2或者字符数组)

int main(void)

{

 char str1[15]="hello";

 char str2[6] = "world";

 printf("%d\n",strcmp(str1,str2));

 return 0;

}

1、两个字符串从左到右按照 ACSII 码值大小比较,直到出现不同的字符或者遇到’\0’为止;

2、若出现不相同的字符,则以第一对不相同的字符的比较结果为准;

3、字符串1等于字符串2,函数值为0,字符串1大于字符串2,函数值为正整数,字符串1小于字符串2,函数值为负整数;

4、两个字符串不能直接用str1>str2这种方式比较,必须用strcmp()函数。

字符串长度函数:

strlen(字符串或者字符数组)

1、strlen()函数在测试字符串长度时不包括结束符;

2、为了测试字符串的实际长度,C语言规定了一个字符串结束标志,以字符’\0’作为结束标志,因此上述程序中虽然字符数组大小为15,但是程序运行结果为5,因为碰到’\0’自动结束

字符串转换大小写函数:

基本结构

大写转小写:strlwr(字符数组)

小写转大写:strupr(字符数组)

int main(void)

{

 char str[15] = "Hello";

 _strlwr_s(str,6);//第一个参数传一个char类型的指针,可以传一个数组,第二个参数传入strlen(str) + 1

 puts(str);

 _strupr_s(str, 6);

 printf("%s\n",str);

 return 0;

}

循环语句中else与最近的if形成匹配,不是按照字符对齐进行

想要else与特定的if进行匹配就可以把影响的if语句用{}括起来,形成语句块

switch语句是通过switch后面的()内的值对应的case中的值来输出值的,适合用于多分枝语句的应用

表达式为

switch(整型表达式)

{

   语句项//是一些case语句,case后面是一些整型常量表达式,比如case 1

}

字符串

总结:如果希望读取的字符串中不包含空格,那么使用 scanf() 函数,因为在scanf函数输入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值