首页 > 其他分享 >C语言判断字符串为空

C语言判断字符串为空

时间:2023-10-17 16:25:25浏览次数:31  
标签:初始化 判断 为空 C语言 char str 字符串

一、字符串的定义

方式1: 使用一个字符数组来存储一个字符串

char str_array[LEN];

方式2:malloc 一段内存来存储一个字符串

char * str_ptr = (char*) malloc (LEN*sizeof(char));

 

二、初始化

定义了数组或字符指针之后,需要做一个初始化,否则里面将是随机值,以后将无法判断改字符串是否为空。所以,首先要保证字符串初始化为空。

memset(str_ptr,'\0',sizeof(LEN*sizeof(char)));

 

三、判空策略

对于已经初始化过的字符串,我们就可以通过strlen来判断是否为空了。

strlen()从字符串第0个字符开始计算,遇到字符\0停止,得到字符串长度,如果长度为0,则字符串为空。

常量字符串: const char* hi_str = "Hi str";
字符串变量 :char * str;

都可以使用下面的示例代码判断是否为空:

if (str != NULL) {
    if (strlen(str) == 0) {
        // it is empty string
    }
}

 

注意:

1. 避免使用 if (str[0] == '\0') 来判断,因为可能导致crash.

2. 如果是字符串指针,首先要判断指针是否为空,否则容易造成段错误。

3. 养成良好变成习惯,定义变量后首先要初始化。

标签:初始化,判断,为空,C语言,char,str,字符串
From: https://www.cnblogs.com/haoran123/p/17770005.html

相关文章

  • 查找空的补助 is null 不为空 is not null
    对比 select *fromempwherecommisnull;  ......
  • C语言二分法
    ////main.c//BinarySearch////Createdbystevexiaohuzhaoon2023/10/16.//#include<stdio.h>//二分法查找指定元素在数组中出现的索引位置intBinarySearch(int*array,intlength,intk){intleft,right,mid,NotFound=-1;//设置......
  • C语言-从键盘输入字符直到#结束,并将字符写入文件
    C语言-从键盘输入字符直到#结束,并将字符写入文件#include<stdio.h>#include<stdlib.h>intmain(){ FILE*fp=NULL; charfilename[25]; charch; printf("inputsavedfilename:\n"); gets(filename);//从键盘输入字符串,与scanf功能类似,其原型是char*gets(char*str)......
  • C语言-将两个文件中的字符串拼接在一起写入第三个文件中
    C语言-将两个文件中的字符串拼接在一起写入第三个文件中步骤1.先创建两个文件A.txt和B.txt,分别写入123,456步骤2.编写程序#include<stdio.h>#include<stdlib.h>#include<string.h>//将A.txt和B.txt中的字符串拼接,放入C.txt中intmain(){ FILE*fa,*fb,*fc; inti,j,......
  • c语言模仿kfifo撰写的一个共用代码框架,可根据需要
    ////kfifo简化版本,根据需要进行改装//定义KFIFO结构体typedefstruct{uint8_t*buffer;//缓冲区指针uint32_tsize;//缓冲区大小,如果要求是2^n-1可以将取余操作修改为按位与操作,同时修改其他相关信息volatileuint32_tin;//入队指针......
  • 基于落点打分的井字棋智能下棋算法(C语言实现)
    本文设计了一种基于落地打分的井字棋下棋算法,能够实现电脑不败,所以如果玩家会玩的话,一般是平局。算法核心电脑根据对落子位置的打分,选择分数最高的位置,若不同落点分数相同则随机选择位置(随机选择就不会显得那么呆板)所以怎么打分是关键!基本思想是,判断落点附近的位置的棋子类型,......
  • 字符串内容替换
    packagecom.infosec.ztpdp.policycenter.module.policycenter.scene.controller;importjava.text.DateFormat;importjava.util.Date;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjava.util.regex.Pattern;importcom......
  • 【标签】字符串
    讲解题目序号题目算法标签题解难度1CF1213D01triesolution\(C^+\)......
  • 给定字符串str= "asdfasdweraasdfasdf", 请python统计每个字符出现的次数,并将结果进行
    str="asdfasdweraasdfasdf"char_count={}forcharinstr:ifcharinchar_count:char_count[char]+=1else:char_count[char]=1forchar,countinchar_count.items():print(f"字符'{......
  • C语言-数据类型
    C语音-数据类型数据类型中文名称空间大小(bite-字节)char字符串数据类1short(int)短整型2int整形4long长整形4longlong更长的整形8float单精度浮点数4double双精度浮点数8include<>intmain(){ //字符类型charch......