首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用带有数组和pointers...getting错误的islower?

尝试使用带有数组和pointers...getting错误的islower?
EN

Stack Overflow用户
提问于 2013-03-08 12:18:34
回答 3查看 402关注 0票数 0

在下面的程序中,我尝试了数组、带有字符串的指针,但我不知道哪里出错了。

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

// finding out the uper case and lower case in a string

int main()
{
    char *arr_1[] = {"CalCulaTor", "DoveTail", "MachiNing"};
    int i = 0, j;

    while(*(arr_1 + i) != '\0')
    {
        printf(" %d letter is %s ",i,islower(*(arr_1 + i)) ? "Lower case    " : "Not lower case");
        printf("\n");
        i++;
    }

    system("PAUSE");

    return 0;
}
EN

回答 3

Stack Overflow用户

发布于 2013-03-08 12:21:33

您的代码看起来可以处理单个字符串,但是您有一个由三个字符串组成的数组。您需要添加另一个循环来处理该数组上的迭代。

票数 3
EN

Stack Overflow用户

发布于 2013-03-08 12:32:08

字符串数组的一种常见用法是以空值结束数组。例如:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

// finding out the uper case and lower case in a string
char *arr_1[] = {
  "CalCulaTor", "DoveTail", "MachiNing", NULL
};

int main()
{
    char **a = arr_1;
    while(*a)
    {
        int i = 0;
        char *c = *a;
        printf ("%s:\n", c);
        while (*c) {
          printf(" %d letter(%c) is %s ", 
            i++,
            *c, 
            (islower(*c) ? "Lower case    " : "Not lower case"));
          c++;
        }
        printf("\n");
        a++;
    }
    system("PAUSE");
    return 0;
}
票数 0
EN

Stack Overflow用户

发布于 2013-03-08 12:41:29

char *arr_1[]是一个指向字符的指针数组。您必须遍历字符串数组,然后循环该字符串以获得每个单独的元素。

代码语言:javascript
复制
#include <stdio.h>
#include <ctype.h>

int main(void)
{
    char *arr_1[] = {"CalCulaTor", "DoveTail", "MachiNing"};
    size_t i, j;

    for (i = 0; i < 3; i++) {
        puts(arr_1[i]);
        for (j = 0; arr_1[i][j]; j++) {
            printf("'%d' element is %s.\n", j, islower(arr_1[i][j]) ? "Lowercase" : "Uppercase");
        }
        putchar('\n');
    }

    return 0;
}

第一个循环将获取字符串(指向char的指针)作为arr_1[i],然后使用另一个变量循环该字符串,将该指针中的一个元素作为char作为arr_1[i][j]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15286641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档