C语言for循环遍历argv中的字符串,一个一个字符打印

这个应该怎么写?大致是
for(用p遍历argv[1]){
int a=*p;
printf("%c",a);
}
这样,主要问下for循环括号里怎么写,谢谢

标准的main函数格式为:

int main(int argc, const char * argv[]);

用于存储命令行参数的argv是一组字符串,字符串的个数为argc的值。

所以要打印argv中的值,一般使用如下程序:

int i;
for(i = 0; i < argc; i ++)
    printf("%s\n",argv[i]);

这时一个个字符串打印的。没有必要要一个个字符打印。

如果要一个个字符打印,可以使用双重循环:

int i,j;
for(i = 0; i < argc; i ++)
{
    for(j = 0; argv[i][j]!='\0'; j ++)//打印一个字符串中的所有字符值。
        putchar(argv[i][j]);
    putchar('\n');
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-13
大概是这个样子吧

#include<stdio.h>
int main(int argc, char **argv)
{
if(argc<2)return 1;

for (char *p=argv[1];*p;*p++)
{
int a=*p;
printf("%c",a);
}
return 0;
}
第2个回答  2013-10-13
int main(int argc, char * argv[]) {
int i;
char *p;
for (i=1;i<argc;i++) {
p = argv[i];
while (*p!=NULL) {
printf("%c", *p++);
}
printf("\n");
}
}追问

抱歉麻烦您了,如果是在一个函数里,例如
abc(int argc,char **argv){

}
这样的话,上面您写的程序有哪里需要改动吗?十分感谢!

追答追问

实在不好意思,您能把代码贴上来吗?如果追问字数不够请您重新回答一下,因为我电脑有点问题没法下载,感谢!我会追加分的

追答

我刚删掉.....
其实你自己也可以解决。
------------------------------------------------------------
#include
void process(int argc, char **argv);

int main(int argc, char * argv[]) {

process(argc, argv);
return 0;
}
void process(int argc, char **argv) {

int i;
char *p;
for (i=1;i<argc;i++) {
p = argv[i];

while (*p != 0) {
printf("%c", *p++);
}
printf("\n");
}
}

本回答被提问者采纳
第3个回答  2018-05-21
还有一个方法:
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main() {
vector<string>str;
const int n = 10;
string str1[n];
string str3;
while (cin >>str3 ) {
str.push_back(str3);
if (str3 == "GG")
break;
}
for (auto &p : str)
cout << p << " ";
cout << endl;
}
第4个回答  2015-11-03
楼主,你确定是要遍历main中得argv吗?
我觉得是不是应该是不是判定一下argv中是否是字符串,然后再判定字符串的数量.