gpt4 book ai didi

c - 将大写字母更改为小写字母时答案错误,反之亦然

转载 作者:行者123 更新时间:2023-11-30 20:47:08 27 4
gpt4 key购买 nike

我无法识别错误。必须打印 A 来代替 a,但正在打印其他一些字母。其他字母的情况也一样。请帮忙找出错误。

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

int main()
{
char m[20];
int i;

printf("Enter any string:");

gets(m);

for(i=0;i<=strlen(m);i++)
{
if(m[i]>=97&&m[i]<=122)
m[i]=m[i]-26;
else
m[i]=m[i]+26;
}

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

return 0;
}

最佳答案

按以下方式更改循环

for(i=0; i < strlen(m); i++ )
^^^

否则您将覆盖终止零。

最好使用字母“A”和“Z”,而不是神奇的数字 97 和 122。例如

  if ( m[i] >= 'A' && m[i] <= 'Z' )

看来也是这个说法

  m[i]=m[i]-26;

错误

我认为你的意思是以下内容

  if ( m[i] >= 'A' && m[i] <= 'Z' )
m[i] = m[i] + 'a' - 'A' ;
else if ( m[i] >= 'a' && m[i] <= 'z' )
m[i] = m[i] - 'a' + 'A' ;

考虑到有标准函数 isupperislower相应地touppertolower在 header <ctype.h> 中声明

还有功能gets C 标准不再支持它,因为它不安全。我建议使用 fgets相反。

关于c - 将大写字母更改为小写字母时答案错误,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31212880/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com