加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何检查C中的String是否为空

发布时间:2020-12-16 10:53:39 所属栏目:百科 来源:网络整理
导读:我有一个void函数,它从全局变量中获取字符串并打印它们. 问题是即使字符串是empy,void函数也会打印一条消息/做东西. 因此,如果全局变量为empt,则只打
我有一个void函数,它从全局变量中获取字符串并打印它们.

问题是即使字符串是empy,void函数也会打印一条消息/做东西.
因此,如果全局变量为empt,则只打印“message is:”
我只想在字符串中包含字符时执行某些操作.

我想要做的是检查字符串是否为空,然后打印一条消息.

// global variable

char msg[30];
scanf("%s",&msg);

void timer(void) {
    //i want to only print if there is a message
    printf("message: %s",msg);
}

谢谢你的帮助

解决方法

简单的方法是这样的:

if (msg[0])
    printf("message: %s",msg);

如果在某个日期,msg是一个指针,你首先要确保它不是一个NULL指针.

if (msg && msg[0])
    printf("message: %s",msg);

一个测试程序来演示:

#include <stdio.h>
#include <stdlib.h>

char *msg;

void test() {
    if (msg && msg[0])
        printf("string is %sn",msg);
}

int main()
{
    msg = NULL;
    test();
    msg = calloc(10,1);
    test();
    msg[0] = 'm';
    msg[1] = 'e';
    test();
    free(msg);
}

在我的机器上输出是:

string is me

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读