为此:
char c[]={ '0', 0, 'o', 'a', 'i', 'e' };
char s_format[] = { "\nBra"
"v%c!\n" };
该程序的目标是根据输入来打印不同的代码行,可以是:
OUTPUT
./nameofmyfile Bravo
./nameofmyfile mp Bravi
./nameofmyfile f Brava
./nameofmyfile fp Brave
在我的主目录中,我有两个char指针:
char *q = c; //this one is initialized at position c[0]
char *p = NULL;
我想我只能使用* q指针来以s_format格式打印字符o,i,a或e,而无需使用switch构造。
这个for循环也许正确吗?
for (unsigned int i=2; i<sizeof(c); ++i) {
printf("%c", *(q+i), s_format[4]);
}
或者我应该使用一系列的if吗?
if ( argc > 3 && strlen(argv[3]) ) {
if ( *(argv[3]) == 'f' )
i = 3;
}
if ( argc > 4 && strlen(argv[4]) ) {
if ( *(argv[4]) == 'mp' )
i = 4;
}
if ( argc > 1 && strlen(argv[5]) ) {
if ( *(argv[5]) == 'fp' )
i = 5;
}
答案 0 :(得分:0)
使用此:
#include <stdio.h>
#include <math.h>
char c[]={ '0', 0, 'o', 'a', 'i', 'e' };
const char * s_begin = "Brav";
const char * s_end ="!\n";
int main()
{
int i = 3;
printf("%s%c%s", s_begin,c[i],s_end); //prints brava
return 0;
}
如果您接受我的主张,则可以通过单击上方的箭头来对其进行投票,也可以通过按V键来接受答案。
答案 1 :(得分:0)
我想也许你想要类似的东西
int *q = c;
if (argc == 2) {
if (argv[1][0] == 'f') {
if (argv[1][1] == 'p') { //assume argv[1][2] == 0
q += 5;
} else {
q += 3; //assume argv[1][1] == 0
}
} else { //assume argv[1][0] == 'm'; argv[1][1] == 'p'; argv[1][2] = 0
q += 4;
}
} else { //assume argc == 1
q += 2;
}
printf(s_format, *q);
答案 2 :(得分:0)
在这里发布我对其他人的回答
qr-code