C语言参数使用方法:如何向函数传入字符串作为参数运行
C语言实现传入字符串调用功能的方案
C语言的main函数是程序的标准入口,有固定的参数签名规范,不支持自定义为int main(str)的形式直接接收字符串参数,也不建议用户手动调用main函数(属于标准未定义行为)。你要实现传入字符串调用、返回0或1的需求,推荐以下两种方案:
方案1:抽离业务逻辑为独立函数(最贴合需求)
把你写的判断逻辑从main里单独抽成自定义函数,就可以像JS里调用函数一样直接传入字符串使用:
#include <string.h> // 自定义功能函数,直接接收字符串参数,返回0/1 int check_string(const char *str) { // 提前计算字符串长度,避免循环中重复调用strlen浪费性能 size_t str_len = strlen(str); // 长度判断只需执行一次,不需要放到循环内 if (str_len != 10) { return 0; } for (int i = 0; i < str_len; ++i) { char ch = str[i]; // 此处可添加你后续要对单个字符做的处理逻辑 } return 1; } int main(void) { // 调用方式和你预期的效果完全一致,直接传字符串即可拿到返回值 int result = check_string("EWEWEWEEW"); return result; }
方案2:通过命令行参数传入字符串
如果你需要在程序启动时从外部传入字符串,用标准的main函数参数形式即可:
#include <string.h> int main(int argc, char *argv[]) { // 校验是否传入了参数:argc=1时只有程序本身,argv[1]才是第一个传入的字符串参数 if (argc < 2) { return 0; } const char *str = argv[1]; size_t str_len = strlen(str); if (str_len != 10) { return 0; } for (int i = 0; i < str_len; ++i) { char ch = str[i]; // 你的字符处理逻辑 } return 1; }
编译完成后,在命令行执行./编译生成的程序名 要传入的字符串即可,比如./test EWEWEWEEW。
内容的提问来源于stack exchange,提问作者RandomDeveloper
相关产品推荐
相关产品推荐

