首页 > 其他分享 >[C] 字符串

[C] 字符串

时间:2023-04-03 09:11:10浏览次数:42  
标签:char lu printf 字符串 sizeof strlen

在 C 语言中,字符串实际上是使用空字符 \0 结尾的一维字符数组。因此,\0 是用于标记字符串的结束。

一、字符串&数组

void base_str() {
    // 字符串数组和字符串指针
    char str[] = "hello";
    char str2[STR_LEN + 1] = "hello";
    char str3[] = {'h', 'e', 'l', 'l', 'o'}; // 这种情况的数组没有办法当作字符串使用,因为没有'\0'
    char str4[] = {'h', 'e', 'l', 'l', 'o', '\0'};
    char *str5 = "hello";

    printf("%lu, %lu\n", sizeof(str) / sizeof(char), strlen(str));   // 6, 5
    printf("%lu, %lu\n", sizeof(str2) / sizeof(char), strlen(str2)); // 6, 5
    printf("%lu, %lu\n", sizeof(str3) / sizeof(char), strlen(str3)); // 5, 10  这个10是因为遇到str4的'\0'
    printf("%lu, %lu\n", sizeof(str4) / sizeof(char), strlen(str4)); // 6, 5
    printf("%lu\n", strlen(str5)); // 5

    // 下面两种写法存储方式大有不同,一个是二维数组,一个是指针数组,存储空间不同
    char week[][10] = {"Monday", "Tuesday", " Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
    char *week2[] = {"Monday", "Tuesday", " Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
    printf("sizeof(week1) %lu\n", sizeof(week)); // 70
    printf("sizeof(week2) %lu\n", sizeof(week2)); // 56
}

二、字符串读写

三、API库函数

标签:char,lu,printf,字符串,sizeof,strlen
From: https://www.cnblogs.com/ffopen/p/17280728.html

相关文章

  • 模拟实现字符串函数strcat和strcmp
    my_strcat函数实现#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<assert.h>#include<string.h>char*my_strcat(char*dest,constchar*src){ assert(dest&&src); char*ret=dest; //找目标串的'\0' while(*des......
  • 字符串和字符数组的区别
    intmain(){charstr1[]={'h','e','l','l','o'};charstr2="hello";//'\0'intlen1=sizeof(str1)/sizeof(char);//5intlen2=sizeof(str2)/sizeof(char);......
  • Antd DatePicker 表单Value 转为 日期字符串格式
    AntdDatePicker表单Value转为日期字符串格式遇到问题:Antd4.x版本和5.x版本中DatePickervalue类型分别是:moment对象和dayjs对象类型,但通常提交表单时候,后端一般都要求是日期字符串格式“2022-08-09”这样;普遍的做法是在提交表单onFinish方法里对表单提交参数进......
  • 逆向——字符与字符串,中文字符GB2312编码由来
    字符与字符串在之前的课程中我们了解到变量的定义决定两个事情,第一是决定存储的数据宽度,第二是决定了存储的数据格式,那么我们来看下下面的代码:inta=123;//变量x,数据宽度为4个字节,里面存储的是补码(在计算机系统中,数值一律用补码来存储)intfloatb=123.4F;//IEEE编码(......
  • leetcode 394.字符串解码 Java
    394.字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为:k[encoded_string],表示其中方括号内部的encoded_string正好重复k次。注意k保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外......
  • 循环输出字符串魔板,动态字段
    names=["吴*平(语文)","张学*(语文)","袁莹*(语文)","宋丹*(语文)","...","廉*峰(会计)"]for(nameofnames)console.log(`${name}\n很满意\n满意\n基本满意\n不满意\n\n${name}师德不满意的原因[多选题]\nA歧视......
  • 提取横杠以左的字符串
    问题:一列数据中,提取最右一个横杠以左的字符。 数据规律是,A列字符串长度为15位或16位,横杠以右都是7位。函数公式解决:=IF(LEN(A2)=15,LEFT(A2,7),LEFT(A2,8))=LEFT(A2,FIND("-",A2,8)-1)=LEFT(A2,LEN(A2)-8)公式1:先用IF判断,A2的长度为15时,左取7位,否则左取8位。公式2:FI......
  • 字符串(提高组)详解
    字符串(提高组)详解前提提要:本文为提高组字符串,不涉及到后缀科技等相关算法,请放心食用Part1.字符串Hash题目概要如题,给定\(N\)个字符串(第\(i\)个字符串长度为\(M_i\),字符串内包含数字、大小写字母,大小写敏感),请求出\(N\)个字符串中共有多少个不同的字符串。输入格式......
  • day11| 20.有效的括号;150.逆波兰表达式求值;1047.删除字符串中的所有相邻重复项
    20.有效的括号 题目简述:给定一个只包括'(',')','{','}','[',']' 的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。 思路:1.利用一个栈实现2.构建一个字典,键......
  • HJ66 配置文件恢复_字典_字符串
    思路:1、把命令和执行对录入一字串字典和二字串字典2、取字典的可以与输入对比3、为了保证唯一性,用c常数增加1来判断是否唯一。4、最后根据c值统一打印输出1importsys2a=[]3forlineinsys.stdin:4a.append(line.strip().split())5#print(a)6d1={"rese......