C语言中69字符,C语言笔记69-70:字符串操作[by-老九学堂]

字符串操作

常用字符串处理函数

3_RUM5FU5UCCHXTVF.png

strlen函数

功能:

计算字符串的实际长度,不包含字符串结束标志'\0'

3_FKQ6A7V73XKZPWA.png

图示:

3_3RTG4HVQGGW57GX.png

源代码:#include "all.h"

int F字符串长度() {

char a字符串1[] = "HelloWorld";

char a字符串2[] = { 'H','e','l','l','o','W','o','r','l','d' ,'\0' };

char a字符串3[] = "你乐科技";

//strlen不会计算'\0'的长度

printf("[a字符串1]的长度为:%d\n", strlen(a字符串1));

printf("[a字符串2]的长度为:%d\n", strlen(a字符串2));

printf("[a字符串3]的长度为:%d\n", strlen(a字符串3));  //在GBK编码中,一个中文字符占用2个字节

return 0;

}

strcpy函数

功能:

把源字符数组中的字符串复制到目的字符数组中,连同结束标志'\0'一同复制

字符数组是常量,不能直接赋值,需要使用每个字符单独赋值.

错误的写法:a字符串1 = a字符串2;

3_EJRNBZD2YFB6YUH.png

图示:

3_GJBBXP4U2GCA2XT.gif

源代码:#include "head.h"

int F字符串复制() {

char a字符串1[50] = "HelloWorld";

char a字符串2[50] = "";

printf("[a字符串1]初始值为:%s\n\n",a字符串1);

printf("请输入字符串2:");

fgets(a字符串2, 50, stdin);   //这里不要使用gets,容易内存溢出

rewind(stdin);

strcpy_s(a字符串1, 50, a字符串2);

printf("\n");

printf("[a字符串1]:%s\n", a字符串1);  //fgets这里会打印2个换行符,

printf("[a字符串2]:%s", a字符串2);

return 0;

}

strcmp-字符串比较函数

功能:

将两个字符串从首字母开始,按照ASCII码的顺序进行逐个比较.

3_JTWK2YHNT6BP9UA.png

3_9P3YNDER424JDFD.png

图示:

3_MU85RCVYX2R82QB.gif

源代码:#include "head.h"

#include "function.h"

int F字符串比较(char ra用户名[], char ra密码[]) {

//这里写一个密码验证功能

char a用户名[50] = "";

char a密码[50] = "";

while (1 == 1) {

#pragma region 输入用户名

printf("请输入用户名:");

//fgets(a用户名, 50,stdin);  //fgets这里有'\n'会使比较失败,暂时不用

F输入字符串(a用户名, 50);

if (strcmp(ra用户名, a用户名) == 0) { //为0表示真

system("cls");

printf("用户名正确\n");

Sleep(2000);

break;

}

else {

//用户名错误

system("cls");

printf("您输入的用户名错误,请您重新输入!\n");

continue;

}

}

#pragma endregion

#pragma region 输入密码

while (1 == 1) {

system("cls");

printf("请输入密码:");

F输入字符串(a密码, 50);

if (strcmp(ra密码, a密码) == 0) {

system("cls");

printf("密码正确");

Sleep(2000);

break;

}

else {

system("cls");

printf("您输入的密码有误,请您重新输入!\n");

continue;

}

}

#pragma endregion

#pragma region 显示账号和密码正确结果

system("cls");

printf("您输入的用户名和密码全部正确!\n");

printf("用户名:%s\n", a用户名);

printf("密  码:%s\n", a密码);

#pragma endregion

return 0;

}

strcat-字符串连接

功能:

将一个字符串连接到另一个字符串的末尾,组合成一个新字符串

注:第一个参数的字符数组长度一定要大,不然很容易出错.

3_PSKNY463PUN43VC.png

图示:

3_K7AF3GEM7WE2N6S.gif

源代码:#include "head.h"

#include "function.h"

int F字符串连接() {

char a字符串1[50] = "";

char a字符串2[50] = "";

char a字符串3[50] = "";

char a字符串temp[50] = "";

while (1 == 1) {

printf("请输入[a字符串1]:");

F输入字符串(a字符串1, 50);

printf("请输入[a字符串2]:");

F输入字符串(a字符串2, 50);

//注意这里:新生成的字符串会修改原来的值,怎么生成一个新值而不去修改当前值呢?

strcpy_s(a字符串temp, 50, a字符串1);   //把[a字符串1]的值保存到[a字符串temp]中     a字符串temp=123

//检查2个字符的长度是否超过50

if (strlen(a字符串1) + 1 + strlen(a字符串2) + 1 <= 50) {  //strlen不会计算'\0'长度,所以这里要+1

//合并后的长度不会越界

strcat_s(a字符串1, 50, a字符串2);                                                //a字符串1=123456

}

else {

system("cls");

printf("您输入的2个字符串长度和超过50了,请您重新输入!\n");

continue;

}

strcpy_s(a字符串3, 50, a字符串1);    //把新生成的值保存至[a字符串3]中              a字符串3=123456

strcpy_s(a字符串1, 50, a字符串temp);                                             //a字符串1=123

break;

}

system("cls");

printf("新生成的字符串[a字符串1]为:%s\n", a字符串1);

printf("新生成的字符串[a字符串2]为:%s\n", a字符串2);

printf("新生成的字符串[a字符串3]为:%s\n", a字符串3);

printf("\n");

printf("[a字符串1]长度为:%d\n", strlen(a字符串1));

printf("[a字符串2]长度为:%d\n", strlen(a字符串2));

printf("[a字符串3]长度为:%d\n", strlen(a字符串3));

return 0;

}

【你乐科技版权】站内所发布的一切原创内容,转载请说明是由《你乐科技》发布,内容仅限用于学习和研究,不得用于商业或非法用途,否则,一切后果请用户自负。本站信息部分来自网络,版权争议与本站无关。您必须在下载后的24小时内,彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

邮箱地址:nilekeji@163.com

最后于 10月前

被酷乐Happy编辑

,原因:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值