首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数tolower()不转换

函数tolower()不转换
EN

Stack Overflow用户
提问于 2014-05-28 17:35:21
回答 3查看 238关注 0票数 0

这段代码有什么问题?我不知道到底发生了什么。

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

int main(void)
{
    char *s = "OKAY";

    for (int i = 0; i < 4; i++)
        tolower(s[i]);

    printf("\n%s\n", s);

    return 0;
}

输出:

代码语言:javascript
复制
OKAY
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-28 17:38:09

您需要将tolower的返回值分配给s,但是这将调用未定义的行为,因为字符串文本是不可修改的,因为它们放在内存的只读部分。你不能修改它。试一试这个

代码语言:javascript
复制
char s[]= "OKAY";
for (int i = 0; i < 4; i++)
    s[i] = tolower(s[i]);
票数 4
EN

Stack Overflow用户

发布于 2014-05-28 17:37:43

tolower函数返回输入字符的小写等价物。它不会修改它的位置。

票数 4
EN

Stack Overflow用户

发布于 2014-05-28 17:38:49

代码语言:javascript
复制
char s[] = "OKAY";

for (int i = 0; i < 4; i++)
    s[i]=tolower(s[i]);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23918294

复制
相关文章

相似问题

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