编写一个程序 要求将命令行输入的大写字母变为小写然后符号不变
例子:
./to HOW Are you?
how are you?
./to It IS 3.26!
it is 3.26!
这是我的代码 想问下怎么修改
老是报错 我也不知道问题在哪里
麻烦修改后的代码运行一下
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main(int argc,char *argv[][])
{
int m;
int i;
for(m=1;m<argc;m++){
for(i=0;i<999;i++){
if(*argv[m][i]<'Z' && *argv[m][i]>'A'){
*argv[m]=tolower(*argv[m]);
}
}
}
for(m=1;m<argc;m++){
for(i=0;i<999;i++){
printf("%s", argv[m][i]);
return 0;
}
}
printf("\n");
}
代码如下:
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main(int argc,char **argv)
{
int i, m;
for(m = 1; m < argc; m++)
{
for(i=0;i<strlen(argv[m]);i++){
if(argv[m][i]<='Z' && argv[m][i]>='A')
putchar(tolower(argv[m][i]));
else
putchar(argv[m][i]);
}
//printf("\n");
printf(" ");
}
printf("\n");
return 0;
}
结果:
#include <stdio.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
for (int i = 1; i < argc; i++)
{
const char *p = argv[i];
while (*p)
putchar(tolower(*p++));
putchar(' ');
}
putchar('\n');
return 0;
}
,char *argv[][]---这写错了吧,应该是main(int argc,char *argv[ ])
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main(int argc,char *argv[])
{
int m;
int i;
for(m=1; m<argc; m++) {
for(i=0; i<999; i++) {
if(argv[m][i]<'Z' && argv[m][i]>'A')
{
argv[m][i]=tolower(argv[m][i]);
}
}
}
for(m=1; m<argc; m++) {
//for(i=0; i<999; i++) {
printf("%s", argv[m]);
// }
}
return 0;
printf("\n");
}