C 基本输入输出 字符数组

[复制链接]
查看11 | 回复3 | 2017-9-15 01:44:42 | 显示全部楼层 |阅读模式
#include "stdio.h"
main()
{
        int s[99],i;
        scanf("%s",s);
        for (i=0;i<99;i++)
        printf("%c",s);       
}
我写的这个程序哪里错了?
我输入asd它输出 一个a加一串烫……
求助……


回复

使用道具 举报

千问 | 2017-9-15 01:44:42 | 显示全部楼层
字符串数组 应该是 字符型的数组scanf("%s",str); 这个语句的意思是从标准输入文件读取一个字符串并存入str的指向的空间;一般是数组越界问题 你可以这样:#include "stdio.h"main(){char s[99];
/*虽说字符是标量类型和整型有相似的行为,但是整型大小一般是一个机器字长,而字符型1个字节 */
int i;
scanf("%s",s);for (i=0;s!='\0';i++)/* '\0' 表示字符串结束 */printf("%c",s);}...
回复

使用道具 举报

千问 | 2017-9-15 01:44:42 | 显示全部楼层
“烫”,是没初始化过的内存,因为你定义int s[99]的时候没初始化……应该这么定义:char s[99] = {0};...
回复

使用道具 举报

千问 | 2017-9-15 01:44:42 | 显示全部楼层
int i;char s[99]s要是字符类型的数组。。。...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行