严凯 发表于 2021-4-11 17:58:42

字符数组

#include<stdio.h>
int main()
{
        char a;
        int j=1;
        a=(怎么输入?);
        a='\0';
        printf("%s",a);
        return 0;
}
就是一个很简单的问题,怎么给a赋值让下面的printf("")输出1?

wp231957 发表于 2021-4-11 18:09:55

#include <stdio.h>


int main(int argc, char *argv[]) {
    char a;
    int j=1;
    a='1';
    a='\0';
    printf("%s\n",a);
    return 0;
}

yuxijian2020 发表于 2021-4-11 18:35:30

#include<stdio.h>
int main()
{
      char a;
      int j=1;
        //获取输入字符,然后赋值?
        //我觉得应该不是楼上那么简单吧= =
        char temp;
        index = 0;

        while((temp = getchar()) && index < 9)
        {
                a = temp;
        }
        a = '\0';
      //a=(怎么输入?);
      //a='\0';
      printf("%s",a);
      return 0;
}

严凯 发表于 2021-4-11 19:11:25

yuxijian2020 发表于 2021-4-11 18:35


我的意思是,哪里只能是j的表达式来赋值

严凯 发表于 2021-4-11 19:14:14

wp231957 发表于 2021-4-11 18:09


不是这样的,我的意思是()哪里只能说j的表达式

严凯 发表于 2021-4-11 19:17:09

哎,已经解决了,就是j+48

wp231957 发表于 2021-4-11 19:43:33

严凯 发表于 2021-4-11 19:14
不是这样的,我的意思是()哪里只能说j的表达式

int main(int argc, char *argv[]) {
    char a;
    int j=1;
    a=j+'0';
    a='\0';
    printf("%s\n",a);
    return 0;
}

肖-肖 发表于 2021-4-11 20:51:33

严凯 发表于 2021-4-11 19:17
哎,已经解决了,就是j+48

没错,是j+48 原因是你想用%s来输出,但是%s输出的话是:字符串输出,会把数组中的每个元素转为字符类型的!
但是你的j定义的是整数类型的!
所以要想输出字符'1'-》就要+48->因为字符'1'的ASCII码就是49!
如下图:找到字符1,左边的是它的ASCII码

OK 完,希望说的有点用吧!

lingehhhc666 发表于 2021-4-14 17:21:25

#include <stdio.h>
#include <string.h>
int main()
{
      char a;//目标字符串
      int j;//字符串的长度   
                scanf("%s",a);//获取字符串
      j=strlen(a);//字符串长度
      a='\0';//添加结束符
      printf("%s",a);//打印字符串
      return 0;
}
希望我的答案对你有帮助
页: [1]
查看完整版本: 字符数组