问题是即使字符串是empy,voID函数也会打印一条消息/做东西.
因此,如果全局变量为empt,则只打印“message is:”
我只想在字符串中包含字符时执行某些 *** 作.
我想要做的是检查字符串是否为空,然后打印一条消息.
// global variablechar 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 %s\n",msg);}int main(){ msg = NulL; test(); msg = calloc(10,1); test(); msg[0] = 'm'; msg[1] = 'e'; test(); free(msg);}
在我的机器上输出是:
总结string is me
以上是内存溢出为你收集整理的如何检查C中的String是否为空全部内容,希望文章能够帮你解决如何检查C中的String是否为空所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)