gpt4 book ai didi

c - 在 C 中将整个句子从大写转换为小写时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-04 05:58:23 25 4
gpt4 key购买 nike

我的代码是正确的,因为我可以看到它根本没有错误,但是当我执行它并说例如我输入“MY NAME IS JACK”时,它只会将“MY”转换为小写。

#include<stdio.h>

#include<string.h>

int main()

{

char str[20];

int i;

printf("Enter any string->");

scanf("%s",&str);

for(i=0;i<=strlen(str);i++){


if(str[i]>=65&&str[i]<=90)

str[i]=str[i]+32;

}

printf("\nThe string in lower case is->%s",str);

return 0;

}

最佳答案

正如其他人所指出的,使用 %s 转换说明符的 scanf 将在第一个空白字符处停止读取输入。如果您想阅读整行,请改用 fgets:

#include <stdio.h>
#include <ctype.h>
#include <string.h>
...
if ( fgets( str, sizeof str, stdin ) != NULL )
{
/**
* chop off the newline if it's present
*/
char *newline = strchr( str, '\n' );
if ( newline )
{
*newline = 0;
}

/**
* Convert the string to lower case.
*/
for ( int i = 0; str[i] != 0; i++ )
str[i] = tolower( str[i] );
}

注意 - 如果缓冲区中没有换行符,则意味着用户键入的字符串比缓冲区可以容纳的长度长,这意味着输入流中有剩余数据。您可能想要发出警告并使用剩余的输入(通常通过重复调用 fgetsgetchar 并在看到换行符时停止)。

关于c - 在 C 中将整个句子从大写转换为小写时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22999835/

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