-4


第一:我是一个有指针的初学者。
我只想打印指针数组中字符串的字符。它工作正常,但我在 Eclipse Juno (Mac OS X) 中遇到了两个问题:
1. 赋值使指针从整数而不进行强制
转换 2. 格式 '%c' 需要类型 'int',但参数 2 的类型为 'char *'

#include<stdio.h>
#include<string.h>

int main(void)
{
    char *words[] = {"word1", "word2", "word3", "word4", "word5"};
    char *tempWord,*tempChar;
    int i, j, numElems2;

    int numElems = sizeof words / sizeof words[0];
    for(i = 0; i < numElems; ++i)
    {
        tempWord = words[i];
        numElems2 = strlen(tempWord);

        for(j = 0; j < numElems2; ++j)
        {
            tempChar = tempWord[j];
            printf("%c", tempChar);
        }
        printf("\n");
    }

    return 0;
}

我理解第一个问题,但不知道如何解决。第二个问题我不明白。'char' 与 'int' 有什么关系?

也许有人可以给我一些建议。谢谢。

4

2 回答 2

4

tempChar需要是 a char,而不是char *您目前拥有的 a 。

您的两条警告消息都告诉您这一点。

于 2012-11-23T14:53:56.510 回答
3

我不确定这段代码应该做什么,但是,首先 tempChar 必须是 char 而不是 *char 类型,如果你想用 printf 打印字符串,你需要使用“%s”...

于 2012-11-23T15:00:29.590 回答