Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中的字符打印_C - Fatal编程技术网

C语言中的字符打印

C语言中的字符打印,c,C,我试图修改里奇和克尼汉的一些代码,但这一个似乎没有返回预期的: 字符1 字符2 角色3 。。。但实际上有些奇怪: 字符1 2. 角色3 四, #包括 main() { char cadena[10],cadinver[10],c; 林林内,i ;; lim=10; i=0; 对于(i=0;(i我没有c的环境,但是: 在最后一次访问cadena时添加'\0'。因此在for之后,执行cadena[i]='\0' 您有一个由10个元素组成的数组。但是在char*中,您应该考虑“\0”。因此lim应该是

我试图修改里奇和克尼汉的一些代码,但这一个似乎没有返回预期的:

字符1 字符2 角色3

。。。但实际上有些奇怪:

字符1 2. 角色3 四,

#包括
main()
{
char cadena[10],cadinver[10],c;
林林内,i ;;
lim=10;
i=0;

对于(i=0;(i我没有c的环境,但是:

  • 在最后一次访问cadena时添加'\0'。因此在for之后,执行cadena[i]='\0'
  • 您有一个由10个元素组成的数组。但是在char*中,您应该考虑“\0”。因此lim应该是9(而不是10)
  • 在printf的末尾使用“\n”。可能有帮助
  • 我不明白你为什么要使用这个系统(“暂停”)
  • 祝你好运


    好的-更正了

    这有点棘手,但我认为这就是正在发生的事情。 当您使用键盘2进行写入,然后按enter键时,您需要做什么 实际上,程序的“give”是“2”\n,这是2个字符。所以 第一个getchar()获取数字2,另一个获取'\n' 性格

    尝试修改for循环体,如下所示:

     cadena[i]=c; 
     printf("%c %d",c,i);
     getchar();
    

    您忘记在循环后使用say
    cadena[i]='\0'
    lim=9
    编写字符串终止符,以便为其留出空间。在发布代码的其他问题中,未使用变量:
    cadinver[10]
    。而不是调用
    系统(暂停)不可移植的,使用以下两行:
    while(int ch=getchar()&&ch!=EOF&&ch!='\n');getchar();
    暂停
    是为了防止在看到输出之前关闭终端窗口。
    cadena[++i]
    是错误的,
    i
    已经是循环结束后的正确索引。
     cadena[i]=c; 
     printf("%c %d",c,i);
     getchar();