首页 > 其他分享 >C字符串基础

C字符串基础

时间:2023-02-19 22:35:46浏览次数:32  
标签:name 基础 char 地址 name2 printf 字符串 size

#include <string.h>
#include <stdio.h>

int main() {

char name[] = "mhm";

char name2[] = {'1', '2'};

printf("%s\n", name);//mhm

printf("%s\n", name2);//12mhm,说明从低地址一直往高地址读,一直读到\0为止

printf("%p\n", name);//*******c68

printf("%p\n", name2);//********c66
//通过以上俩地址,可以看出,name先分配地址,位c68,c69,c70,c71,共4位,包括最后一位隐藏的\0
//name2分配地址位:c66,c67
//字符和数字分配内存地址不一样,数字全部是从高地址往低地址分配,字符串的第一个字节在低地址


printf("%s\n", &name2[1]);//2mhm 从name2的第1个地址开始读,即从‘2’开始读


char name3[] = "mhmlove\0yy";

printf("%s\n", name3);//mhmlove,说明,到\0就结束了

char name4[] = {'y', 'y'};

printf("%s\n", name4);//yymhmlove,说明,从低地址往高地址寻址,到\0就结束了

//一个汉字为3个字符

int size = strlen("我");// size为3 一直数,一直数到\0结束
printf("%d\n", size);

size = strlen("我123");// size为6 一直数,一直数到\0结束
printf("%d\n", size);

size = strlen(name3);//size为7,因为到mhmlove就结束了
printf("%d\n", size);


//单独输出字符,不是字符串
printf("%c\n", name[2]);//输出m

return 0;
}

标签:name,基础,char,地址,name2,printf,字符串,size
From: https://blog.51cto.com/u_21817/6066903

相关文章

  • JS字符串和json转换
    <head><scriptsrc="jquery-1.8.0.min.js"type="text/javascript"></script><scriptsrc="jquery.json-2.4.js"type="text/javascript"></script></head>varst......
  • Golang基础-Maps
    常见用法varagesmap[string]int//只声明不初始化是nil,赋值会panic:assignmenttoentryinnilmapfmt.Println(ages==nil)//"true"fmt.Println(len(ag......
  • 【LeeCode】28. 找出字符串中第一个匹配项的下标
    【题目描述】给你两个字符串 ​​haystack​​ 和 ​​needle​​ ,请你在 ​​haystack​​ 字符串中找出 ​​needle​​ 字符串的第一个匹配项的下标(下标从0开......
  • Linux基础 - 服务管理 supervisor自启动问题
     一、 supervisor 自启动问题1.1Supervisor自启动导致无法使用环境变量编写systemd文件,使用systemd启动。在supervisord.conf配置文件中使用/etc/profile中的环境......
  • Golang基础-Time
    常用函数t,err:=time.Parse(layout,date)//time.Time,errort:=time.Date(1995,time.September,22,13,0,0,0,time.UTC)formatedTime:=t.Format("Mon,01/02/2......
  • 树与二叉树的基础概念与代码实现
    树与二叉树的基础概念与代码实现树,其实跟我们现实生活中的树是差不多的。如果你还不了解树这个数据结构的话,你可能认为树是这样的:但事实正好相反,在数据结构当中,树的模......
  • 算法刷题-字符串最后一个单词的长度-JAVA
    0x00引言为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。题解只写自己理解的解法,其他解法不再增加。......
  • Linux基础 - 服务管理 supervisor
     一、supervisor 1.1 supervisor 介绍 Supervisor是一个进程管理工具,当进程中断的时候Supervisor能自动重新启动它,可以运行在各种类unix系统上。Supervisor......
  • jsp开发基础
    1、什么时动态网页?指的是能够通过不同的操作返回不同的功能及数据,具有交互功能。常见的开发模式:B/S架构:游览器和服务器C/S架构:客户端和服务器B/S架构的执行原理:基于......
  • git基础操作
    一、分支分支命名规则开发分支:dev功能分支:feature/功能名称bug分支:bugfix/bug名称预发布分支:release/预发布版本名称列出本地分支:gitbranch列出远程分......