如何将 "int argc and char *argv[]" 添加到我的主要功能并在我的代码中实现?
How to add "int argc and char *argv[]" to my main function and impliment into my code?
我正在创建一个大写函数。我想在我的代码中实现 argc 和 argv 参数,但我不知道该怎么做。
这是我的代码;
Main.c:
#include <stdio.h>
#include <stdlib.h>
#include "upperc.h"
int main(int argc, char *argv[])
{
char s[] = "HellO2 world3!";
printf("%s \n", s);
printf("%s \n", uppercase(s));
return 0;
}
upper.c:
/*
Parsing the string, then making the letters to uppercase.
*/
#include <stdio.h>
#include "upperc.h"
char * uppercase(char *s) {
for(char *p = s; *p; ++p) {
if ('a' <= *p && *p <= 'z')
*p = *p & ~' ';
}
return s;
}
upper.h:
#ifndef UPPERC_H_INCLUDED
#define UPPERC_H_INCLUDED
char * uppercase(char *s);
#endif // UPPERC_H_INCLUDED
因为这看起来像是某种作业,所以我没有给出完整的答案。
argc
是参数个数包括被执行的程序名。这意味着 argc
如果没有指定参数则为 1,如果指定了一个参数则为 2 等
不要无条件地将 argv[1]
传递给您的 uppercase
函数。如果 argc
为 1 甚至 0,这将是未定义的行为。(详见下文)
根据您的要求,您应该检查 argc
并仅处理 argv[1]
(如果可用),这将是第一个参数,或者处理 argv[1]
、argv[2]
...在必要时循环。
补充细节(对于专家,因为我原来的措辞不准确):
如果您的程序以正常方式调用,argc
的值应至少为 1,并且 argv[0]
将是程序名称。 argv[argc]
的值是一个 NULL
指针。当然,在这种情况下你可以访问指针值,但你不能取消引用它,即你不能访问指针指向的值。
可以以导致 argc
值为 0 的方式调用您的程序。在这种情况下,argv[0]
将是一个 NULL
指针,并且数组元素 argv[1]
(及其后的所有内容)将是未定义的。
我正在创建一个大写函数。我想在我的代码中实现 argc 和 argv 参数,但我不知道该怎么做。
这是我的代码;
Main.c:
#include <stdio.h>
#include <stdlib.h>
#include "upperc.h"
int main(int argc, char *argv[])
{
char s[] = "HellO2 world3!";
printf("%s \n", s);
printf("%s \n", uppercase(s));
return 0;
}
upper.c:
/*
Parsing the string, then making the letters to uppercase.
*/
#include <stdio.h>
#include "upperc.h"
char * uppercase(char *s) {
for(char *p = s; *p; ++p) {
if ('a' <= *p && *p <= 'z')
*p = *p & ~' ';
}
return s;
}
upper.h:
#ifndef UPPERC_H_INCLUDED
#define UPPERC_H_INCLUDED
char * uppercase(char *s);
#endif // UPPERC_H_INCLUDED
因为这看起来像是某种作业,所以我没有给出完整的答案。
argc
是参数个数包括被执行的程序名。这意味着 argc
如果没有指定参数则为 1,如果指定了一个参数则为 2 等
不要无条件地将 argv[1]
传递给您的 uppercase
函数。如果 argc
为 1 甚至 0,这将是未定义的行为。(详见下文)
根据您的要求,您应该检查 argc
并仅处理 argv[1]
(如果可用),这将是第一个参数,或者处理 argv[1]
、argv[2]
...在必要时循环。
补充细节(对于专家,因为我原来的措辞不准确):
如果您的程序以正常方式调用,argc
的值应至少为 1,并且 argv[0]
将是程序名称。 argv[argc]
的值是一个 NULL
指针。当然,在这种情况下你可以访问指针值,但你不能取消引用它,即你不能访问指针指向的值。
可以以导致 argc
值为 0 的方式调用您的程序。在这种情况下,argv[0]
将是一个 NULL
指针,并且数组元素 argv[1]
(及其后的所有内容)将是未定义的。