c语言和c++字符串操作细节

c语言字符串输入输出

c语言字符串定义

字符串以字符数组形式存在,需要包含cstring头文件 ____

	char str[30] = {"aaa bbb ccc"};
	char str[30] = "aaa bbb ccc";  
	char str[] = {"aaa bbb ccc"};
	char str[] = "aaa bbb ccc";  //这种形式更加简洁,实际开发中常用
	//c语言用字符数组表示字符串时不能先定义后赋值,只能在定义的时候初始化
	char str[12];
	str="aaa bbb ccc"    //这是错的 

	//但是可以先定义再输入 ,下面这个是对的 
	char str[12];
	gets(str);      //由输入的字符串长度觉得str的长度 
	printf("%s",str);

输入单个字符

scanf(“%c”,ch); '\n’会留在缓冲区,回车后可进行下一个输入 __

	char a;
	int b;
	scanf("%c",&a);
	scanf("%d",&b);
	printf("%c\n",a);
	printf("%d",b);
	/*
	输入: a
		  1
	输出: a
	      1
	*/

输入字符数组(字符串)

1.scanf("%s",s);
'\n’遇到空白字符(包括空格、制表符、换行符)时均会停止输入 _

	char  str[20];
	scanf("%s",&str);
	printf("%s",str);
	/*
	输入:aaa bbb ccc
	输出:aaa
	*/ 
  1. gets(); * gets很多刷题平台上不能使用,比如openjude和PTA上说明了不能使用,但是平时对于输入不确定长度的字符串非常方便*

3.scanf("%[^\n]",sa); 正则表达式帮助输入

	char sa[20];
	scanf("%[^\n]",sa);
	printf("%s",sa);
	
	/*输入aaa bbb ccc
	  输出aaa bbb ccc*/

输出单个字符

printf("%c",ch);

输出字符数组

1.printf("%s",s);
不能自动换行,只能输出字符数组,不能输出字符串常量 __
2.==puts(); ==
输出字符串并自动换行,该函数只能输出字符串 _ _

c++字符串输入输出

字符串以sting类存在,需要包含string头文件(由于c++是从c语言继承而来的,所有c语言能使用的输入输出和字符串定义规则c++都能用)

输入单个字符

1.cin>>ch;不能读取空格,其余字符均可读入
2.ch=getchar();可读取空格

输入一行常量字符串

1.getline(cin,s);
getline(cin,s,’,’); 指定输入字符串的间隔符号
适用于字符串长度不确定的情况
2.gets(); 不能检查数组是否能装得下输入行
3.fgets(); 用函数代替gets()

输入字符数组

1.cin.getline(char buf[],int bufsize); 自动添加’\0’,回车换行符不会写入buf,但是会从输入流中去掉,在使用cin.getline()时要考虑字符串最后的"\0",所以字符数组的大小总会设置得比我们需要的大一,为避免错误尽量不使用
2.gets(char buf[]);

输出字符串

cout<<str;
由于个人觉得c++的输入输出比c语言的简答一些,所以c++部分的代码就没有写出来了
小白总结,只是为了做笔记,可适当参考,语句的具体使用方法就自己动手查吧

c语言字符串与指针

c语言能直接设置指向字符数组的指针,但是一般不直接用指针进行输入输出,先用一个字符串过渡一下

	char sa[20];
	scanf("%[^\n]",&sa);
	char *str=sa;
	printf("%s",str);

很神奇,c语言中能直接用char *指向字符数组表示字符串

	char *str="aaa bbb ccc";
	printf("%s",str);    //整体输出
	for(int i=0;i<strlen(str);i++)
	printf("%c",str[i]); //一个一个字符地输出

c++字符串与指针

c++中字符串一般用string表示,但是不能使用得像其他基本数据类型一样方便,跟c语言一样不能直接用指针进行输入输出

	/*string *sa;
	cin>>*sa;
	cout<<*sa<<endl;*/    //这是错误的
	string str;
	getline(cin,str);
	string *sa;
	sa=&str;  //配合引用设置指针

除了不能直接用指针进行输入以外,其他使用方法与其他几种基本数据类型一样

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值