我是Linux和C编程的新手。我一直在尝试研究命令行编码(使用nano编辑器),并试图弄清楚如何制作一个带有一个或多个命令行参数的程序并打印出首字母缩略词。
到目前为止我的尝试:
#include <stdio.h>
int main(int argc, char *argv[])
{
int i = 0;
for(i = 0; i < argc; i++)
{
while(argv[i]!='\0')
{
if(argv[i] = ' ')
{
i++;
printf("%c,argv[i+i]);
}
}
}
return 0;
}
答案 0 :(得分:0)
argv[i]
本身已经是一个字符串。您应该只检查其第一个字符并迭代i
。
#include <stdio.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
for(int i = 1; i < argc; i++)
{
if(isupper(argv[i][0]))
printf("%c", argv[i][0]);
}
return 0;
}
答案 1 :(得分:0)
有一些错误
int == 0; // syntax error
for(i == 0; i < argc; i++) // i is not set by a comparison
无论如何代码都没有真正做到,请试试这个:
#include <stdio.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
char acronym[argc];
int index = 0;
for(int i = 1; i < argc; i++) {
if(isupper(argv[i][0])) {
acronym[index] = argv[i][0];
index++;
}
}
acronym[index] = '\0';
printf("The acronym is %s\n", acronym);
return 0;
}
计划会议:
test Three Letter better Acronym The acronym is TLA