我需要在命令行中創建一個程序,該程序接受不少於2個參數並且不超過6個參數,然後打印出來的第一或第二字符 EX:ASDF ASDF ASDF ASDF 打印出爲:ASAS使用C中的命令行檢測參數,然後輸出參數的第一個或第二個字符
我有初始陣列設置和工作時,for循環以下是爲了切斷串斷在輸入的空間中,並複製它到一個新的字符串,但它不能正常工作。我是C新手,也是本站。任何幫助是極大的讚賞。
#include <stdio.h>
#include <string.h>
int main(){
char a[50];
char b[50];
char c[50];
char d[50];
char e[50];
char f[50];
int i;
printf("enter a string (Ex: asdf asdf asdf... Must have atleast 2 arguments but no more than six): ");
scanf("%s", a);
printf("%c", a);
for (i = 0; i != 50; i++){
if(a[i]==' '){
char strncpy(b, &a[i], i+2);
printf("\n%c ",a[1]);
printf("%c ",b[0]);
}
}
for (i = 0; i != 50; i++){
if(b[i]==' '){
char strncpy(c, &b[i], i+2);
printf("%c ",c[1]);
}
}
for (i = 0; i != 50; i++){
if(c[i]==' '){
char strncpy(d, &c[i], i+2);
printf("%c ",d[0]);
}
}
for (i = 0; i != 50; i++){
if(d[i]==' '){
char strncpy(e, &d[i], i+2);
printf("%c ",e[1]);
}
}
for (i = 0; i != 50; i++){
if(e[i]==' '){
char strncpy(f, &e[i], i+2);
printf("%c ",f[0]);
}
}
return 0;
}
我缺少的東西?當你說'在命令行傳遞參數'時,我希望你談論的是傳遞給'main()'的'argv'數組。情況並非如此嗎?我已經準備好了答案,但也許你可以先澄清一下。 – paddy
是的,那是我想要做的。然而我只是在一段時間後嘗試着這樣做 – Church
嗯,我看到你已經編輯了你的問題,所以你正在從控制檯讀取命令,而不是命令行。在你說這就是你真正想要做的事情之後,我發佈了我的命令行答案。如果這不是你的意思,我會刪除它。 – paddy