数组
#include <stdio.h>#define MAX 21
int main()
{
int space, i = 0;
char str;
printf("请输入一行文本是:");
while ((str = getchar()) != '\n')
{
/*
if (i >= MAX) // Q:当输入大于21字符时,不会获取‘\n’
{
break;
}
*/
if (str == ' ' && i <= MAX) //记录空格位置
{
space = i;
}
};
printf("%d\n", i);
if (i >= MAX - 1) //当输入字符大于21时,使结尾断在离21最近的空格
{
str = '\0';
}
if (i <= MAX) //当输入字符少于21时,可以正常输出
{
str = '\0';
}
printf("你输入的文本是:%s\n", str);
return 0;
}
问题1:当输入字符少于21时,输出会多出一行
eg:请输入一行文本是:fdssdfa
8
你输入的文本是:fdssdfa
�
问题2:当输入大于21字符时,输出不了
@Twilight6 @风车呼呼呼 @jackz007 本帖最后由 jackz007 于 2022-11-21 22:14 编辑
你的代码不完整,能不能把你的代码贴入代码框?
#include <stdio.h>
#define MAX 21
int main()
{
int space , i , n ;
char str ;
printf("请输入一行文本是:") ;
for(n = 0 ; (str = getchar()) != '\n' && n < MAX - 1 ; n ++);
for(; n && str == ' ' ; n --) str = '\0' ;
str = '\0' ;
if(n == MAX - 1) {
for(i = n ; i && str != ' ' ; i --) ;
if(i) str = '\0' ;
}
printf("你输入的文本是:%s\n" , str) ;
} jackz007 发表于 2022-11-21 21:17
你的代码不完整,能不能把你的代码贴入代码框?
这就是全部的代码呀 Weabu 发表于 2022-11-21 21:59
这就是全部的代码呀
看看你贴出的代码,斜体部分就是 [ i ] 被吞噬后把 [ i ] 作为斜体指令给过滤掉了。
2 楼给出了修改后的代码,你可以试试看。
页:
[1]