字符串语法

字符串最多的就是读取和不读取空格的问题,弄清楚两种方法,够做题就行了。

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string>
#include<string.h>
using namespace std;
int main()
{
    ///用char数组,如果是一个一个复制式赋值,最后要补'\0',不然没有结束地方
    char str1[15];
    char str2[15];
    scanf("%s",str1);///遇到空格、回车等会结束获取输入的字符串,后面的字符串会过滤掉(存放在输入流中)。
                        ///如果后面还需要输入字符串,则会从前面存放的字符串开始获取。
    getchar();      ///吸收空白字符
    gets(str2);     ///可以输入空格,回车结束

    for(int i=0;i<strlen(str1);i++)///输出需要截取到字符长度,不然会输出一些乱七八糟的东西
                                    ///strlen获取长度需要头文件<string.h>
        printf("%c",str1[i]);        ///单个字符输出
        printf("\n");

    printf("%s\n",str2);              ///字符串输出
    
    ///string型,需要头文件<string>
    string str3;  
    string str4;

    cin>>str3; ///cin输入,遇到空格和回车结束,跳过空格,空格还留在缓冲区
    getchar();///可以读取空白字符,没有赋值给变量,就释放了
    getline(cin,str4);///可以输入空格

    cout<<str3<<endl;
    printf("%s\n",str4.c_str());///printf输出需要调用函数

    ///复制,存储副本
    str3 = str4;///string型可以直接复制,直接添加字符或者字符串,但是不能用 += 这个符号
int len=str3.size();///获取长度
   bool flag=str3.empty();///判断是否为空字符串,其实判断长度为0也可以。
str3 = str3+"abc"; str3 = str3+'a'; cout<<str3<<endl; return 0; }

 全局变量和局部变量的数组有所差异。

定义全局变量的字符数组,并且是一个一个赋值时,哪一个没有赋值,自动补'\0'。局部变量则会随机填充,用strlen截取长度可知,输入不相关的语句,字符数组长度会不一样,甚至会出现截取的长度大于局部变量数组最大范围的情况。

转载于:https://www.cnblogs.com/shoulinniao/p/9457360.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值