您好我有一个程序从用户接收参数。使用指针执行传输。 该代码稍后不使用指针,这会产生接收内容的问题。如果您帮我修复可行的代码,我会很高兴。
代码 -
#include <stdlib.h>
#include<string.h>
void order(int n,char argv[99]);
int main(int argc, char** argv)
{
int i,n;
n = argc;
order(n,*argv);
}
void order(int n,char argv[99])
{
int i,j;
char temp;
for(i=1; i < n; i++)
{
for(j = 0 ; j < n - 1; j++)
{
if(argv[j] > argv[j+1])
{
temp=argv[j];
argv[j]=argv[j+1];
argv[j+1]=temp;
}
}
}
system("PAUSE");
for (i = 0; i < n ; i++)
{
printf("%c",argv[i]);
}
}
答案 0 :(得分:1)
您似乎对argc
和argv
感到困惑。
int argc
包含传递给程序的命令行参数的数量,char **argv
是包含这些参数的字符串(空字符终止字符数组)的数组(空指针终止)。这与您的计划不一致:
1.没有理由将任何一个命令行参数的长度限制为99个字符。
2.只将第一个(零索引)命令行参数传递给order()
。这通常是程序的名称。
3.然后在argc
中使用order()
。但是,argc
不是第一个命令行参数的长度。那将是strlen(argv[0])
。