鱼C论坛

 找回密码
 立即注册
查看: 1561|回复: 2

[已解决]关于定义数组str的一个问题

[复制链接]
发表于 2021-6-27 23:15:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
[font=黑体]???代表的是代码的东西

如果??? = int 它的结果是左下角的图1

如果??? = char 它的结果是右下角的图2


代码如下


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

#define MAX 21

int main()
{
        ??? str[MAX];
        int  i = 0,a,ch;
       
        a = MAX - 1;
       
        printf("请输入英文文本:");
        while ((ch = getchar()) != '\n')
        {
                str[i++] = ch;
               
        }
       
        if(i > 19)
        {
                for(i = 0;i < 20;i++)
                {
                        if(str[i] = '\n')
                        {
                                a = i;
                        }
                }
                str[a] = '\0';
        }
        else
        {str[i] =  '\0';}
       
        printf("你输入的文本是:%s\n",str);
        printf("i=%d,a=%d",i,a);
       
        return 0;
}
最佳答案
2021-6-27 23:30:01
000f 000i 000s 000h 0000...  int数组相当于(内存中并不是真的这样   
fish\0                  char str【max】 相当于这样
'\0' 的值就是0

图1

图1

图2

图2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-27 23:23:43 | 显示全部楼层
能不能用插入代码。。。。 颜色别改很难阅读的     
你   int str[MAX];    每个元素4B
char 只有一个字节啊
%s遇到NUL(0) 直接结束了   所以输出一个f     
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-27 23:30:01 | 显示全部楼层    本楼为最佳答案   
000f 000i 000s 000h 0000...  int数组相当于(内存中并不是真的这样   
fish\0                  char str【max】 相当于这样
'\0' 的值就是0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 15:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表