字符串操作
常用字符串处理函数
strlen函数
功能:
计算字符串的实际长度,不包含字符串结束标志'\0'
图示:
源代码:#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;
图示:
源代码:#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码的顺序进行逐个比较.
图示:
源代码:#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-字符串连接
功能:
将一个字符串连接到另一个字符串的末尾,组合成一个新字符串
注:第一个参数的字符数组长度一定要大,不然很容易出错.
图示:
源代码:#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编辑
,原因: