【发布时间】:2010-04-22 16:13:09
【问题描述】:
我已经按照这里的代码示例进行了操作
并在我自己的代码中实现如下
void CharString::MakeUpper()
{
char* str[strlen(m_pString)];
int i=0;
str[strlen(m_pString)]=m_pString;
char* c;
while (str[i])
{
c=str[i];
putchar (toupper(c));
i++;
}
}
但这给了我以下编译器错误
CharString.cpp: In member function 'void CharString::MakeUpper()':
CharString.cpp:276: error: invalid conversion from 'char*' to 'int'
CharString.cpp:276: error: initializing argument 1of 'int toupper(int)'
CharString.cpp: In member function 'void CharString::MakeLower()':
这是第 276 行
putchar (toupper(c));
我知道 toupper 正在寻找 int 作为参数并返回一个 int ,这是问题吗?如果是这样,该示例如何工作?
【问题讨论】:
-
您能否进一步说明 m_pString 是什么?您是要大写单个字符数组(C 字符串)还是大写字符串数组?
-
尝试将单个字符串中的每个字符大写
-
您对
char与char*的使用从根本上混淆;你似乎是靠耳朵玩的。在继续之前,强烈建议认真阅读 C 语言。 -
谢谢弗拉德,你假设我没有意识到这一点,我很清楚我的 C/C++ 知识几乎不存在,但是我不打算学习 C++ 只是移植一些旧的 C++供 JNI 使用。如果您有很好的阅读材料链接,请务必分享。谢谢
标签: c++ string compiler-construction char