0

我应该构建一个采用 argv[1] 的程序,并据此将字符转换为小写或大写。但是我被卡住了,因为 C 无法将指针与字符串进行比较。关于如何比较指针和的任何想法一个字符串,我不想逐个字符地比较它们。这是代码

 #include <stdio.h>
#include <ctype.h>
#include <string.h>
int main (int argc,char *argv[])
{
    char c;
    if(argc!=2)
    printf("Wrong use of program \n");
    printf("The Format is Lower or Upper \n");
    return -1;
    if ((strcmp(argv[1],"Lower"))==0) 
    {
                          while((c=getchar())!=EOF)
                          {
                                                   printf("-");
                                                   putchar(tolower(c));
                                                   printf("\n");
                                                   } 
                                                   }
    if ((strcmp(argv[1],"Upper"))==0) 
    {
                          while((c=getchar())!=EOF)
                          {
                                                   printf("-");
                                                   putchar(toupper(c));
                                                   printf("\n");
                                                   }
                                                   }
    if ((strcmp(argv[1],"Lower"))!=0 && ((strcmp(argv[1],"Upper"))!=0))
    {
                          printf("Wrong use of program \n");
                          printf("The Format is Lower or Upper \n");
                          return -1;
                          }

                       return 0;
}
4

2 回答 2

3

您想要做的是使用函数 strcmp 或 stricmp (不区分大小写)。

于 2013-03-16T13:59:28.443 回答
2

首先,使用 strcmp 如果字符数组匹配,它将返回 0。

if (!strcmp(argv[1], "Lower"))
{

其次,如果多个语句适用于 if 条件,则这些语句必须包含在 {} 中。

if (argc != 2)
{
   printf("Wrong use of program \n");
   printf("The Format is Lower or Upper \n");
   return -1;
}
于 2013-03-16T14:01:04.700 回答