当前位置: 首页 > news >正文

字符串(2)

4.字符串的常见函数

代码

#include <stdio.h>
#include <string.h>
int main()
{char* str1 = "abc";char str2[100] = "abc";char str3[5] = { 'q','w','e','r' ,'\0' };printf("---------------------strlen(长度)---------------------------\n");////细节:strlen这个函数在统计长度的时候,是不计算结束标记的////细节:在window中,默认情况下,一个中文占2个字节//int len1 = strlen(str1);//3//int len2 = strlen(str2);//3//int len3 = strlen(str3);//4////想要调用这个函数,直接把对应的字符串直接传递给他就行了,这个函数会给我们返回一个整数,就是当前字符串的长度//printf("%d\n", len1);//printf("%d\n", len2);//printf("%d\n", len3);第一个数组要留足够的位置,因为要拼接第二个数组的内容,也需要位置printf("---------------------strcat(拼接)---------------------------\n");////细节:把第二个字符串中全部的内容,拷贝到 第一个字符串的末尾//       //前提1:第一个字符串的内容是可以被修改的//       //前提2:第2个字符串中剩余的空间可以容纳拼接的字符串//strcat_s(str2, str3);//abcqwer//printf("%s\n", str2);//qwer//printf("%s\n", str3);////现在是把str2和str3给传递过去了,也就是说现在要把qwer拼在abc后面printf("---------------------strcpy(拷贝)---------------------------\n");//strcat_s(str2, sizeof(str2), str3);////细节:把第2个字符串所有的内容,拷贝到第一个字符串中,把第一个字符串里面原有的内容给覆盖了////     前提1:第一个字符串是可以被修改的////     前提2:第一个字符串中空间可以容纳第二个字符串的完整内容//printf("%s\n", str2);//qwer//printf("%s\n", str3);//qwerprintf("---------------------strcmp(比较)---------------------------\n");//细节:在比较的时候,要求顺序和内容完全一样,才叫做字符串一样////完全一样:0////只要有一个不一样:非0//int res = strcmp(str1, str2);//printf("%d\n", res);//printf("---------------------strlwr(变小写)---------------------------\n");//细节:只能转换英文的大小写,不能修改中文的大小写——1壹//_strlwr(str2) ;//printf("%s\n",str2);//printf("---------------------strupr(变大写)---------------------------\n");//细节:只能转换英文的大小写,不能修改中文的大小写_strupr_s(str2, sizeof(str2));printf("%s\n",str2);return 0;
}

5.用户登陆

#include <stdio.h>
#include<string.h>
int main()
{/*需求:已知正确的用户名和密码,请用程序实现模拟用户登陆总共给3次机会,登录之后,请给出提示*///1.定义两个变量表示正确的用户名和密码char* rightUsername = "zhangtao";char* rightPassword = "1234qwer";//3.比较for (int i = 1; i <= 3; i++){//2.键盘录入2个字符串,表示用户输入的用户名和密码printf("请输入用户名\n");char username[100];scanf("%s", username);printf("请输入密码\n");char password[100];scanf("%s", password);//验证printf("%s\n", username);printf("%s\n", password);if (!strcmp(username, rightUsername) && !strcmp(password, rightPassword)){printf("登录成功\n");break;}else{if (i == 3){printf("用户%s被锁定,请联系黑马程序员官方账号",username);}else{printf("登录失败,还剩下%d次机会\n", 3 - i);}}}return 0;}

6.统计次数

#include <stdio.h>
#include<string.h>
int main()
{/*键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他字符)*///1.键盘录入一个字符串printf("请输入一个字符串\n");char str[100];scanf_s("%s", str);//2.统计该字符中大写字母字符,小写字母字符,数字字符出现的次数//遍历字符串得到了吗的每一个字符int bigcount = 0;int smallcount = 0;int numbercount = 0;for (int i = 0; i < strlen(str); i++){char c = str[i];if(c>='a' && c<='z'){smallcount++;}else if (c >= 'A' && c <= 'Z'){bigcount++;}else if (c >= '0' && c <= '9'){numbercount++;}}printf("大写字符出现了%d次\n", bigcount);printf("小写字符出现了%d次\n", smallcount);printf("数字字符出现了%d次\n", numbercount);return 0;}

错误

数组名不能直接赋值

输入一行字符,统计其中有多少个单词,单词之间用空格分隔开

if(c=='')//word新单词出现标志,word=0,一般出现空格就要换到另一个新单词
word=0;
else if(word==0)
{
word =1;//表示这是新单词
num++;//遇到非空格就回++,而前面是空格
#include <stdio.h>
int main()
char string[81],c;
int i,num=0;word=0;
gets(string);//不用scanf,不能录入空格
for(i;(c=string[i])!='\0';i++)
if(c=='')
word=0;
else if(word==0)
{word=1;
num++;
}
printf("%d words\n",num);
return 0;

文章转载自:

http://M72gEML2.sLLpt.cn
http://m1SQQKzh.sLLpt.cn
http://aYx568UB.sLLpt.cn
http://IhrfHZaC.sLLpt.cn
http://f3vso3fo.sLLpt.cn
http://Y51B2NPA.sLLpt.cn
http://j1T3o21P.sLLpt.cn
http://kGqzTR3S.sLLpt.cn
http://9Yyps0Wg.sLLpt.cn
http://QrBviagS.sLLpt.cn
http://Ps1vO0Xt.sLLpt.cn
http://5ymY2Brj.sLLpt.cn
http://d1jghDra.sLLpt.cn
http://797TWvPO.sLLpt.cn
http://wqOaehs2.sLLpt.cn
http://fwulfEsr.sLLpt.cn
http://Jum7lkaZ.sLLpt.cn
http://Y1MX6gur.sLLpt.cn
http://5bbPq6b5.sLLpt.cn
http://Hz0Sx3qn.sLLpt.cn
http://XFOPN8Ab.sLLpt.cn
http://e1BMnZTB.sLLpt.cn
http://6gDwUvsJ.sLLpt.cn
http://Glk4QLK7.sLLpt.cn
http://I7poRBDs.sLLpt.cn
http://VkoVvOxu.sLLpt.cn
http://3yY4ZwYE.sLLpt.cn
http://DyEHkJS3.sLLpt.cn
http://bwUsYORi.sLLpt.cn
http://pBFcOT9t.sLLpt.cn
http://www.dtcms.com/a/368592.html

相关文章:

  • MySQL问题4
  • PHY的自适应协商简析
  • MySQL InnoDB 的锁机制
  • 海盗王64位dx9客户端修改篇之五
  • 官宣:Apache Cloudberry (Incubating) 2.0.0 发布!
  • SpringBoot 中 ThreadLocal 的妙用:原理、实战与避坑指南
  • Unity Hub 创建支持 Android iOS 的项目教程
  • LangGraph节点完整组成与要求详解
  • 【Qt开发】按钮类控件(三)-> QCheckBox
  • mcp_clickhouse代码学习
  • Spring Boot 源码深度解析:揭秘自动化配置的魔法
  • 指定端口-SSH连接的目标(告别 22 端口暴力破解)
  • PNPM库离线安装方案
  • MacOS 15.6 编译SDL3 Android平台多架构so库
  • 鸿蒙:获取UIContext实例的方法
  • 计算机原理-计算机操作系统-硬盘缓存、断电丢数据篇
  • 普通键盘在MacOS上如何使用快捷键
  • 分布式专题——1.1 Redis单机、主从、哨兵、集群部署
  • Redis 持久化机制:RDB 快照深度解析
  • 在选择iOS代签服务前,你必须了解的三大安全风险
  • MCP驱动企业微信智能中枢:企业级机器人服务构建全攻略
  • 期望阻抗模型中的相互作用力方向是机器人施加给环境的还是环境施加给机器人的?
  • bc 命令详解:Linux 下的任意精度计算器
  • B.50.10.06-NoSQL数据库与电商应用
  • 【前端教程】JavaScript DOM 操作实战案例详解
  • 假设一个算术表达式中包含圆括号、方括号和花括号3种类型的括号,编写一个算法来判别,表达式中的括号是否配对,以字符“\0“作为算术表达式的结束符
  • 【数学建模】数据预处理入门:从理论到动手操作
  • 机器学习(七)决策树-分类
  • 汽车软件研发智能化:AI在CI/CD中的实践
  • 有序数组,距离目标最近的k个数 二分查找