strcmp相关知识
-
比较两个字符串的大小public class Strcmp { public static void main(String[] args) { String a="aasdf"; String b="sdfad"; String c="aasdfg"; System.out.println(compareString(b,b));
-
php入门之字符串(3)<?php /* 字符串替换函数 str_replace()替换字符串或数组元素,区分大小写,第四个参数可选用于统计替换次数 str_ireplace()不区分大小写替换 strtr()替换字符串中的任意字符 字符串比较函数 strcmp()比较字符串,如果相等返0 如果字符串1<字符串2 -1 字符串1>字符串2 1 strcasecmp()不区分大小写字符串比较 strnatcmp()按自然数进行字符串比较 strncmp()指定位置进行字符串的比较 similar_text()比较两个字符串有多少字符相等,第三个参数返回一个变量,为两个字符串相似的百分
-
mysql之常用函数mysql之常用函数本文内容: mysql函数的介绍聚集函数avgcountmaxminsum用于处理字符串的函数合并字符串函数:concat(str1,str2,str3…)比较字符串大小函数:strcmp(str1,str2)获取字符串字节数函数:length(str)获取字符串字符数函数:char_length(str)字母大小写转换函数:大写:upper(x),ucase(x);小写lower(x),lcase(x)字符串查找函数获取指定位置的子串字符串去空函数字符串替换函数:用于处理数值的函数绝对值函数:abs(x)向上取整函数:ceil(x)向下取整函数:floor(x)取模函数:mod(x,y)随机数函数:rand()四舍五入函数:round(x,y)数值截取函数:truncate(x,y)用于处理时间日期的函数获取当前日期:curdate(),current_date()获取当前时间:curtime(),current_time()获取当前日期时间:no
-
自制操作系统Antz day11——实现shell(下)命令响应我已经规范了系统代码风格,类似于按照linux分包,把各部分功能区分开了Antz系统更新地址Linux内核源码分析地址Github项目地址在之前的任务中,我们已经通过直接操作显卡驱动完成了简单的图形化。需要了解之前的部分:直接操作显卡请参考day03简单图形化的实现请参考day09键盘按键中断响应请参考day10Makefile项目目录一 . 如何实现命令缓存在之前已经完成了键盘的响应工作,但这种响应却是有很大的问题,比如说对于一次按键的两次中断处理。后来我把两种中断都加入了响应判断中,这样就不会有之前第10天所提到的bug了。* 在替换函数中完成识别。修改如下char* replace_char(char s[40]){ char *chr = "$" ; if((strcmp(s,"1E")==0)||(strcm
strcmp相关课程
strcmp相关教程
- 2. 示例程序 #include <stdio.h>#include <string.h>int main(){ char a[100] = "Welcome to our wiki!"; char b[] = "It is a interest place."; char c[20] = ""; printf("string length = %lu\n", strlen(a)); printf("Compare a to a : %d\n", strcmp(a, a)); printf("Compare a to b : %d\n", strcmp(a, b)); printf("Compare b to a : %d\n", strcmp(b, a)); printf("Before copy : %s\n", c); strcpy(c, a); printf("After copy : %s\n", c); char *pchar; pchar = strchr(a, 'o'); printf("Character : %s\n", pchar); pchar = strstr(a, "our"); printf("String : %s\n", pchar); strcat(a, b); printf("After concatenate strings : %s\n", a); return 0;}运行结果:string length = 20Compare a to a : 0Compare a to b : 14Compare b to a : -14Before copy :After copy : Welcome to our wiki!Character : ome to our wiki!String : our wiki!After concatenate strings : Welcome to our wiki!It is a interest place.在示例程序中,我们展示了常用的字符串函数的使用。在获取字符串大小的函数中,我们统计的字符串的大小是包含空格和符号的。但是不包含字符数组中的最后一个表示字符串结束的 \0 字符。比较字符串的大小其实是比较其里面字符编码的数值大小求差值,所以两个相同的字符差值是 0 ,如果前面的字符编码值小于后面的,那么就会出现负值,反之就是一个正值。。但是具体的比较方式留在这里大家通过尝试不同的值猜测一下。拷贝字符串,就是将一个真的复制生成一个副本。而不是如同我们之前提及的使用数组给函数传递参数的时候一样,只是传递的函数本体,而不是副本。因此你在复制字符串完成后,即使修改了原有字符串,也不会影响到新生成的字符串。字符的查找与字符串的查找基本是类似的,通过示例可以看出,我们通过字符查找 o 那么会返回第一个出现 o 的位置的指针,而通过字符串查找,只有完全匹配字符的情况下才返回指针,所以会跳过字符查找出现的位置,继续查找,直到找到 our 这个字符串。拼接字符串就是将两个字符串拼接,这里同样需要注意。前面是数组大小要足够大,可以容纳被拼接的字符串,否则会出现问题。
- 3. 示例程序 #include <stdio.h>#include <string.h>#define StudentNumbers 50#define NameLength 50typedef struct{ int id; char name[NameLength]; int age; int score; int flag;} Student;int add(Student student, Student Students[]);int del(int id, Student students[]);int display(Student students[]);int update(int id, Student students[]);int search(char name[], Student students[]);int main(){ int id = -1; char name[NameLength]; int choice = 0; int stop = 0; Student students[StudentNumbers]; Student student; for (int i = 0; i < StudentNumbers; i++) { students[i].id = i; students[i].flag = 0; } while (stop == 0) { printf("-------------------------\n"); printf("* 学生管理系统 *\n"); printf("-------------------------\n"); printf("1 添加\n"); printf("2 修改成绩\n"); printf("3 查询\n"); printf("4 删除\n"); printf("5 显示学生列表\n"); printf("0 退出程序\n"); printf("请直接输入数字选项:"); scanf("%d", &choice); switch (choice) { case 1: printf("请输入学生姓名:"); scanf("%s", student.name); printf("请输入学生的年龄:"); scanf("%d", &student.age); printf("请输入学生成绩:"); scanf("%d", &student.score); add(student, students); break; case 2: printf("请输入要修改成绩的学生编号:"); scanf("%d", &id); update(id, students); break; case 3: printf("请输入要查找的学生姓名:"); scanf("%s", name); search(name, students); break; case 4: printf("请输入要删除的学生编号:"); scanf("%d", &id); del(id, students); break; case 5: display(students); break; case 0: stop = 1; break; default: printf("输入选项有误\n"); break; } } return 0;}int add(Student student, Student students[]){ for (int i = 0; i < StudentNumbers; i++) { if (students[i].flag == 0) { strcpy(students[i].name, student.name); students[i].age = student.age; students[i].score = student.score; students[i].flag = 1; return 0; } } return 1;}int del(int id, Student students[]){ for (int i = 0; i < StudentNumbers; i++) { if (students[i].id == id) { students[i].flag = 0; return 0; } } return 1;}int display(Student students[]){ printf("******************\n"); printf("学生列表\n"); printf("******************\n"); for (int i = 0; i < StudentNumbers; i++) { if (students[i].flag == 1) { printf("学生编号:%d,学生姓名:%s,年龄:%d,成绩:%d\n", students[i].id, students[i].name, students[i].age, students[i].score); } } printf("******************\n"); return 0;}int update(int id, Student students[]){ int score = -1; printf("请输入新的成绩:"); scanf("%d", &score); for (int i = 0; i < StudentNumbers; i++) { if (students[i].id == id) { students[i].score = score; return 0; } } return 1;}int search(char name[], Student students[]){ for (int i = 0; i < StudentNumbers; i++) { if (strcmp(name, students[i].name) == 0) { printf("学生编号: %d,学生姓名: %s,年龄: %d,成绩: %d\n", students[i].id, students[i].name, students[i].age, students[i].score); return 0; } } printf("没有查找到相关学生信息。\n"); return 1;}很多人可能会第一次接触这么长的程序,会产生畏惧的心理。其实不用担心。要相信自己可以看懂的。我们分开来讲解一下。在程序的最开始我们需要引入程序中可能需要使用的函数的头文件。这里我们因为要使用 printf 、 scanf 等,所以需要 stdio 函数库。因为要使用 strcpy 、 strcmp 函数,所以需要 string 函数库。#include <stdio.h>#include <string.h>为了便于程序中的维护,不用在很多出修改共用的数值。所以这里定义了一个常量#define StudentNumbers 50#define NameLength 50为了存储学生的信息。我们用了 struct 来定义学生的信息。里面包含学生的编号 id ,姓名 name 这是一个字符串,年龄 age ,成绩 score ,标志位 flag 这个变量是用来表示是否有学生信息存储在该位置的。不过这里我们使用了之前没有介绍的一个 typedef 。这个关键字使用的好处是使得后面使用这个 struct 的时候不用每次都用关键字 struct 来定义,只要用这个结构的名称直接定义就可以了,如同我们定义整数等内置类型一样方便。typedef struct{ int id; char name[NameLength]; int age; int score; int flag;} Student;为了便于维护,我们没有按照函数出现的顺序来写。不过 C 语言一直秉承着先定义再使用的原则。所以。如果你使用的函数没有在使用前出现,而是在后面的话,那么你就需要先让编译器知道这个函数的基本情况。这个时候我们会先把函数的定义写在前面。我们可以看到下面我们定义了这个系统的功能。每个功能我们都会写一个函数。其实不写这些函数,把所有的功能写在 main 函数内部也是可以的。但是这样会在维护上存在问题。进行测试也会变得困难。int add(Student student, Student Students[]);int del(int id, Student students[]);int display(Student students[]);int update(int id, Student students[]);int search(char name[], Student students[]);这里定义了一些需要使用的变量。stop 变量是用来控制程序循环的,也就是控制程序在什么时候可以结束循环的。我们定义了一个 Student 的数组,用来存储学生的信息。用一个单独的变量来存储单条的学生信息。int id = -1;char name[NameLength];int choice = 0;int stop = 0;Student students[StudentNumbers];Student student;这里我们通过循环来初始化我们的数组。for (int i = 0; i < StudentNumbers; i++){ students[i].id = i; students[i].flag = 0;}循环语句如果在不改变条件的情况下会一直循环。确保我们的系统可以一直运行。while (stop == 0)在接收到输入后。我们就会通过 switch 来进行相应的匹配。完成对应的操作。这比使用大量的 if 语句简约了很多。switch (choice)在子程序中,也就是实现增、删、改、查这些功能程序中。我们用了循环语句来访问数组中的元素。同时,利用了判断语句与特定的变量,来判断该位置是否存有学生信息。运行结果:utopia@DESKTOP:~$ ./test-------------------------* 学生管理系统 *-------------------------1 添加2 修改成绩3 查询4 删除5 显示学生列表0 退出程序请直接输入数字选项:1请输入学生姓名:张三请输入学生的年龄:22请输入学生成绩:100-------------------------* 学生管理系统 *-------------------------1 添加2 修改成绩3 查询4 删除5 显示学生列表0 退出程序请直接输入数字选项:1请输入学生姓名:李四请输入学生的年龄:21请输入学生成绩:90-------------------------* 学生管理系统 *-------------------------1 添加2 修改成绩3 查询4 删除5 显示学生列表0 退出程序请直接输入数字选项:1请输入学生姓名:王二请输入学生的年龄:23请输入学生成绩:99-------------------------* 学生管理系统 *-------------------------1 添加2 修改成绩3 查询4 删除5 显示学生列表0 退出程序请直接输入数字选项:5******************学生列表******************学生编号:0,学生姓名:张三,年龄:22,成绩:100学生编号:1,学生姓名:李四,年龄:21,成绩:90学生编号:2,学生姓名:王二,年龄:23,成绩:99******************-------------------------* 学生管理系统 *-------------------------1 添加2 修改成绩3 查询4 删除5 显示学生列表0 退出程序请直接输入数字选项:2请输入要修改成绩的学生编号:1请输入新的成绩:80-------------------------* 学生管理系统 *-------------------------1 添加2 修改成绩3 查询4 删除5 显示学生列表0 退出程序请直接输入数字选项:5******************学生列表******************学生编号:0,学生姓名:张三,年龄:22,成绩:100学生编号:1,学生姓名:李四,年龄:21,成绩:80学生编号:2,学生姓名:王二,年龄:23,成绩:99******************-------------------------* 学生管理系统 *-------------------------1 添加2 修改成绩3 查询4 删除5 显示学生列表0 退出程序请直接输入数字选项:4请输入要删除的学生编号:1-------------------------* 学生管理系统 *-------------------------1 添加2 修改成绩3 查询4 删除5 显示学生列表0 退出程序请直接输入数字选项:5******************学生列表******************学生编号:0,学生姓名:张三,年龄:22,成绩:100学生编号:2,学生姓名:王二,年龄:23,成绩:99******************-------------------------* 学生管理系统 *-------------------------1 添加2 修改成绩3 查询4 删除5 显示学生列表0 退出程序请直接输入数字选项:1请输入学生姓名:张五请输入学生的年龄:20请输入学生成绩:70-------------------------* 学生管理系统 *-------------------------1 添加2 修改成绩3 查询4 删除5 显示学生列表0 退出程序请直接输入数字选项:5******************学生列表******************学生编号:0,学生姓名:张三,年龄:22,成绩:100学生编号:1,学生姓名:张五,年龄:20,成绩:70学生编号:2,学生姓名:王二,年龄:23,成绩:99******************-------------------------* 学生管理系统 *-------------------------1 添加2 修改成绩3 查询4 删除5 显示学生列表0 退出程序请直接输入数字选项:3请输入要查找的学生姓名:张五学生编号: 1,学生姓名: 张五,年龄: 20,成绩: 70-------------------------* 学生管理系统 *-------------------------1 添加2 修改成绩3 查询4 删除5 显示学生列表0 退出程序请直接输入数字选项:在程序中,我们首先添加了 3 条学生的记录。然后我们进行了列表显示。接着,我们尝试修改了其中一个学生成绩,并再次查看列表,发现成绩修改生效了。然后,我们删除了一个学生,列表显示结果其已经被删除了。然后我们又尝试添加了一个学生。列表显示结果添加成功。最后我们按照姓名查找了一个学生。
- Kotlin 类型系统 Kotlin 是安卓开发的官方语言
- While-let Rust 从入门到进阶实战
- 12-1 位运算简介和举例 摆脱题海,高频经典题目归纳讲解;以练代学,短期高效
- Pandas 时间序列之 Timestamp 入门数据分析行业必学的 Pandas 工具包
strcmp相关搜索
-
s line
safari浏览器
samba
SAMP
samplerate
sandbox
sanitize
saper
sas
sass
save
smarty模板
smil
smtp
snapshot
snd
snmptrap
soap
soapclient
soap协议