C语言入门到进阶(字符串的输入) 6th/Dec./2019

要实现的目标

接收终端输入的字符串
在main函数中输出


使用的技术

函数方法的声明实现和调用
字符数组的使用

1、字符数组
字符数组字符指针的区别
字符数组char name[100] = {};有内存,可以直接接收字符串
字符指针char *name;不能直接接收字符串,原因:字符指针只为某个变量分配8个自己的内存空间,这个空间只能来存地址,不能存具体的数据


代码的实现

#include <stdio.h> 
void test3(char *p){
    scanf("%s", p);
}

int main(){
    //字符串"abc" == 字符数组
    char name[100] = {};//字符数组  ->有内存,可以存数据
    test3(name);
    //字符和字符串  使用%s 
    printf("%s",name);  
    
    return 0;
}

运行结果1

运行结果2

由于scanf("%s", p)%s的限制,当遇到空格或者回车时就结束,无法完整输出字符串,解决方法如下代码:

#include <stdio.h> 
void test3(char *p){
    //scanf("%s", p);
    int i = 0;
    while(1){
        //从终端接受一个字符 
        char c = getchar();
        //判断是否结束 \n 
        if(c == '\n'){
            //需要在数组里面添加一个\0
            p[i] = '\0'; 
            break;
        }
        //保存数据 
        p[i] = c;
        //索引值++ 
        i++;
    }
}

int main(){
    //字符串"abc" == 字符数组
    char name[100] = {};//字符数组  ->有内存,可以存数据
    test3(name);
    //字符和字符串  使用%s 
    printf("%s", name);  
    
    return 0;
}
最终版本
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容