【发布时间】:2011-02-07 22:37:44
【问题描述】:
我有一个简单的函数,它将一个字符数组作为参数,并将所有字符转换为小写。但是,我收到一个奇怪的访问冲突错误。代码如下:
void toLower(char *rec)
{
int i=0;
while (rec[i]!='\0')
{
if (rec[i]>='A' && rec[i]<='Z')
rec[i]='a'+rec[i]-'A'; //this is where I get an error - assigning the
//the value to rec[i] is the problem
i++;
}
}
你能告诉我我的错误是什么吗? 谢谢
【问题讨论】:
-
如果这不是家庭作业,有一个 C++ 标准库函数,
std::tolowerin<cctype>就是这样做的。 -
@James McNellis:但 tolower 仅适用于单个角色。
-
这是字符数组还是字符串?如果这是数组,则需要数组长度作为附加参数。
-
不,这不是作业,我只是在练习我的 C++,它有点生锈了...... :) @Kenny:我用这个:toLower(rec);其中 rec 也传递给我调用 toLower 的函数,如下所示: int palindrome(char *rec) { ... @Alex: 这是一个数组,但最后我有一个空终止字符串,所以它不是问题。顺便说一句,该函数在第一次迭代中崩溃。
标签: c access-violation lowercase