(C++)strcmp和stricmp、strcmpi三者之间的区别

(strcmpi在Windows C标准库实现,但不在GNU C标准库实现)

#include <string.h>
#include <stdio.h>原型:extern int strcmp(const void *s1, const void *s2);用法:#include <string.h>功能:比较字符串s1和s2是否相同,区分大小写。说明:如果s1=s2则返回零,否则返回非零值。原型:extern int stricmp(char *s1,char * s2);用法:#include <string.h>功能:比较字符串s1和s2,但不区分字母的大小写。说明:strcmpi是到stricmp的宏定义,实际未提供此函数。当s1<s2时,返回值<0当s1=s2时,返回值=0当s1>s2时,返回值>0//举例:void main()
{
char *str1="I am OldWolf";
char *str2="I am Oldwolf";
int cmp;printf("原字符串分别为:\n%s\n%s\n\n",str1,str2);
cmp=strcmp(str1,str2);
if (cmp!=0)printf("strcmp比较字符串不相同!\n");
elseprintf("strcmp比较字符串相同!\n");
cmp=stricmp(str1,str2);
if (cmp!=0)printf("stricmp比较字符串不相同!\n");
elseprintf("stricmp比较字符串相同!\n");
cmp=strcmpi(str1,str2);
if (cmp!=0)printf("strcmpi比较字符串不相同!\n");
elseprintf("strcmpi比较字符串相同!\n");
}

C语言判断文件后缀名

示例

#include <stdio.h>
#include <string.h> // strrchr()函数int main(void)
{char sFilenname[20]; //创建chr型数组且分配内存const char *pFile;printf("请输入文件名称:");scanf("%s", sFilenname);pFile = strrchr(sFilenname, '.'); // 判断输入的文件名最后输出.的位置if (pFile != NULL){ // 输入不为空if (strcmpi(pFile, ".exe") == 0){ // 判断.exe文件printf("exe文件!");return 0;}else if (strcmpi(pFile, ".txt") == 0){ // 判断.txt文件printf("txt文件");return 0;}}printf("非文件格式");return 0;
}

ZENO_Audio 判断wav mp3

(strcmpi在Windows C标准库实现,但不在GNU C标准库实现,小编在Ubuntu里开发的,只能用tolower + strrchr实现了)

struct ReadAudioFile : zeno::INode {virtual void apply() override {auto path = get_input<StringObject>("path")->get(); // std::stringauto lower_path = path;transform(lower_path.begin(), lower_path.end(), lower_path.begin(), ::tolower);zeno::log_info("{} -> {}", path, lower_path);bool isWave = false;auto *pFile = strrchr(path.c_str(),'.');if(pFile !=NULL) {if (strcmp(pFile, ".wav") == 0) {zeno::log_info("is wave");auto result = zeno::readWav(path);set_output("wave", result);} else if (strcmp(pFile, ".mp3") == 0) {zeno::log_info("is mp3");auto result = zeno::readMp3(path);set_output("wave", result);}}}};

strrchr()用法

#include <stdio.h>
#include <string.h>int main ()
{int len;const char str[] = "https://www.runoob.com";const char ch = '.';char *ret;ret = strrchr(str, ch);printf("|%c| 之后的字符串是 - |%s|\n", ch, ret);return(0);
}

c_str()用法

//标准库的string类提供了三个成员函数来从一个string得到c类型的字符数组
//主要介绍c_str
//c_str():生成一个const char*指针,指向以空字符终止的数组。
//这个数组应该是string类内部的数组
#include <iostream>
//需要包含cstring的字符串
#include <cstring>
using namespace std;int main()
{//更好的方法是将string数组中的内容复制出来 所以会用到strcpy()这个函数char *c = new char[20];string s = "1234";// c_str()返回一个客户程序可读不可改的指向字符数组的指针,不需要手动释放或删除这个指针。strcpy(c,s.c_str());cout<<c<<endl;s = "abcd";cout<<c<<endl;
}

转换字符串的大小写

可以用transform函数转换字符串的大小写。

头文件:#include<algorithm>‘’

函数原型之类的没有研究,只看了他的用法

transform(str.begin(), str.end(), str.begin(), ::tolower);//将str字符串中的大写转换为小写,保存在str中
transform(str.begin(), str.end(), str.begin(), ::toupper);//小写->大写
transform(str.begin(), str.end(), str.begin(), exchange);//大小写切换

示例

#include<iostream>
#include<algorithm>
using namespace std;class Solution {
public:bool isPalindrome(string s) {if(s.size() == 0)return true;size_t left = 0;size_t right = s.size() - 1;transform(s.begin(),s.end(),s.begin(),::tolower);//将字符串的大写改为小写while(left < right){if(!((s[left] >= 'a' && s[left] <= 'z') ||(s[left] >= '0' && s[left] <= '9'))){left++;continue;}if(!((s[right] >= 'a' && s[right] <= 'z') ||(s[right] >= '0' && s[right] <= '9'))){right--;continue; }if(s[left] != s[right]){return false;}left++;right--;}return true; }};int main()
{string str;Solution s1;while(getline(cin, str)){cout << s1.isPalindrome(str)<<endl;}return 0;
}

《TEN MINUTES PHYSICS》

Ten Minute Physics (matthias-research.github.io)

01 - Introduction to 2d web browser physics

【学习日志】2022.09.02 (C++)strcmp和stricmp、strcmpi三者之间的区别、C语言判断文件后缀名、ZENO Audio Update、TEN MINUTES PHYSICS相关推荐

  1. 各种深度学习模型与框架的文件后缀名

    神经网络.深度学习和机器学习模型文件后缀名: ONNX (.onnx, .pb, .pbtxt) Keras (.h5, .keras) CoreML (.mlmodel) Caffe2 (predi ...

  2. IOS学习笔记 ---- 15/09/02

    1.三种方式监听方式: addTarget方法: 使用代理方法: [[NSNotificationCenter defaultCenter] addObserver]方法监听通知: 2.在storyb ...

  3. C语言学习笔记——2022.09.07

    C语言中负数的存贮 对于有符号的数,规定其二进制代码的最高位为符号位. 只要是整数,内存中存储的的都是二进制补码 正数的原码.反码.补码相同 负数在内存中存储的是二进制的"补码" ...

  4. 图解:AI 与深度学习及机器学习,三者之间的区别

    ⭐️ 本文首发自 前端修罗场(点击加入),是一个由资深开发者独立运行的专业技术社区,我专注 Web 技术.答疑解惑.面试辅导以及职业发展.现在加入,私聊我即可获取一次免费的模拟面试机会,帮你评估知识点 ...

  5. 从零开始的Linux学习日志(3)

    从零开始的Linux学习日志(3) vim文本编辑器 1.vim文本编辑器的三种模式 2.命令模式的常用命令 3.末行模式的常用命令 4.vim使用实例--配置主机名称 5.vim使用实例--配置网卡 ...

  6. PyQt(Python+Qt)学习随笔:QTextEdit的setText、setHtml、setPlainText之间的区别

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 QTextEdit中提供了三个设置编辑器文本的方法,分别是setTex ...

  7. 2022年3月新资讯学习日志

    3月31日 BERT-as-service 时隔三年突然更新,这次连名儿都改了 数据集蒸馏 by Matching Training Trajectories 大厂常考机器学习知识点总结(下) 手把手 ...

  8. 学习日志[自我监督与复习用]

    2021/8/24 正式开始学习,写下此日志进行监督和回忆知识点的提醒 今日学习了unity2D的内容有: 1.左上角的五种基本操作 2.新建Tilemap(瓦片地图)-分类- 1.长方形-2.六边形 ...

  9. CSP-J1 CSP-S2第1轮 初赛资料集(2022.09.09)

    1.CSP-J CSP-S NOI初赛 https://blog.csdn.net/dllglvzhenfeng/category_11823100.html 2.CCF关于举办CSP-J1 CSP- ...

最新文章

  1. 模拟PLC 的圆弧插补方式在VC中绘制圆弧
  2. 日媒:中国去年装机量猛增 成最大光伏日媒:中国去年装机量猛增 成最大光伏发电国家发电国家...
  3. VTK:图片之ImageDifference
  4. 《每日论文》You Only Look Once: Unified, Real-Time Object Detection
  5. No module named ‘__main__.common‘; ‘__main__‘ is not a package
  6. 《深入理解Nginx:模块开发与架构解析》一1.6 Nginx的命令行控制
  7. 在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。...
  8. Linux上层应用--Shell scripts基础规范
  9. [CareerCup] 17.3 Factorial Trailing Zeros 求阶乘末尾零的个数
  10. MyBatis源码阅读(五) ---Mapper接口的获取过程
  11. 系统分析师真题__专项:计算机系统与配置 2
  12. android ios emoji表情,iOS和Android的Emoji表情同步方案
  13. 编解码学习笔记(三):Mpeg系列——Mpeg 1和Mpeg 2
  14. DWR 实现AJAX学习
  15. 抖音网页版登录入口在哪
  16. 如何三平台win/安卓/ios同步日历日程
  17. matlab怎么处理声音,用matlab处理音频文件
  18. ios怎么引入masonry_IOS Masonry的基本使用
  19. 细说二维码扫码登录的原理
  20. Shell脚本学习指南(七)——产生脚本

热门文章

  1. 数据挖掘竞赛lightgbm通过求最大auc调参
  2. 无线覆盖智慧连锁门店商业wifi解决方案
  3. 【蒙古文】:传统蒙古语网页显示方法
  4. 第七代英特尔处理器安装Windows7提示“不支持的硬件”的解决方法
  5. Java缓存及过期处理的简单实现
  6. 【原创】C#List线程安全相关解决方案
  7. 子墨庖丁Android的ActionBar源代码分析 (一)实例化
  8. unity android视频录制sdk,Unity中保存EveryPlay录制视频到本地的解决方案
  9. 在电脑上登录两个微信
  10. 潮汐观测数据调和分析及预报成图