zoukankan      html  css  js  c++  java
  • C语言讲义——字符串库函数

    字符串库函数<string.h>

    求字符串长度(不含结束符’’****) strlen(str)
    字符串赋值(可能造成数组越界) strcpy(str," 水浒传 ");
    字符串追加(可能造成数组越界) strcat(str," 三国演义 ")
    字符串比较(小于:-1/等于:0/大于:1****) strcmp("AAA", "BBB");

    strlen:自动无视结束符

    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, char *argv[]) {
    	char str1[] = "Trump";
    	printf("sizeof %d
    ", sizeof(str1));
    	printf("strlen %d
    ", strlen(str1));
    	printf("*******************
    ");
    	char str2[] = "川普";
    	printf("sizeof %d
    ", sizeof(str2));
    	printf("strlen %d
    ", strlen(str2));
    	return 0;
    }
    

    strcpy赋值/复制

    #include <stdio.h>
    #include <string.h>
    int main(int argc, char *argv[]) {
    	// 眼见喜、耳听怒、鼻嗅爱、舌尝思、意见欲、身本忧"
    	char str1[]="眼见喜";
    	printf("%d
    ", sizeof(str1));
    	printf("%s
    ", str1);
    
    	printf("**strcpy*******************************
    ");
    	strcpy(str1,"耳听怒");
    	printf("%d
    ", sizeof(str1));
    	printf("%s
    ", str1);
    
    	printf("**strcpy不检测大小是否匹配*******************************
    ");
    	int n1 = 1000;
    	printf("新变量:%d
    ", n1);
    	strcpy(str1,"鼻嗅爱、舌尝思");
    	printf("%d
    ", sizeof(str1));
    	printf("%s
    ", str1);
    	printf("新变量:%d
    ", n1); // n1被破坏了
    
    	return 0;
    }
    

    注意:strcpy不检测大小是否匹配

    char str1[]="眼见喜";
    int n1 = 1000;
    strcpy(str1,"鼻嗅爱、舌尝思");
    

    strcat(Concatenate·连接)

    注意:strcat也不检测大小是否匹配

    #include <stdio.h>
    #include <string.h>
    int main(int argc, char *argv[]) {
    	char str1[]="眼见喜";
    	printf("sizeof %d
    ", sizeof(str1));
    	printf("strlen %d
    ", strlen(str1));
    	printf("%s
    ", str1);
    
    	printf("**strcat不检测大小是否匹配*******************************
    ");
    	int n1 = 1000;
    	printf("新变量:%d
    ", n1);
    
    	strcat(str1, "、耳听怒");
    
    	printf("新变量:%d
    ", n1);// 被破坏
    	printf("sizeof %d
    ", sizeof(str1));
    	printf("strlen %d
    ", strlen(str1));
    	printf("%s
    ", str1);
    
    	return 0;
    }
    

    strcmp判等

    str1str1:1
    str2
    str3:0
    小于:-1
    大于:1
    等于:0

    #include <stdio.h>
    #include <string.h>
    int main(int argc, char *argv[]) {
    	char str1[200]="a";
    	char str2[200]="b";
    	char str3[200]="b";
    	// 使用==判断是错误的
    	printf("str1==str1:%d
    ", str1==str1);
    	printf("str2==str3:%d
    ", str2==str3);// 判断错误
    
    	int nCmp;
    
    	nCmp = strcmp("a", "b");
    	printf("小于:%d
    ", nCmp);
    
    	nCmp = strcmp("b", "a");
    	printf("大于:%d
    ", nCmp);
    
    	nCmp = strcmp(str2, str3);
    	printf("等于:%d
    ", nCmp);
    
    	return 0;
    }
    

    字符串转数字

    需要#include <stdlib.h>

    转整形 int n = atoi(str);
    转浮点型(double****) double d = atof(str);
  • 相关阅读:
    Ubuntu18.04 安装Redis
    前端周刊,给前端同学准备的每周1小时阅读清单
    如何开发第三方小程序组件
    奋斗路上的安全边际,程序员保险配置指南
    为了知道儿子到底胖不胖,做了一个婴幼儿成长标准计算小程序
    Vue组织架构图组件
    最好用的jQuery-Ajax缓存插件
    Vue-Access-Control:前端用户权限控制解决方案
    RESTful学习及应用
    纯前端实现人脸识别-提取-合成
  • 原文地址:https://www.cnblogs.com/tigerlion/p/11191657.html
Copyright © 2011-2022 走看看