一、C字符串与C++字符串的深入理解

对于C语言,需要区分C字符串C字符数组。 

C字符串:以字符NULL(‘\0’)结尾的字符数组; 

C字符数组:数组元素类型为字符类型。

C字符串的的初始化:char str[] = "hello";

C字符串的相关操作,利用“string”中定义的字符串处理函数。 

比如,strcpy(str,"world");//字符串的赋值等。

对于C++字符串,需要注意的是字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作。

C字符串和C++字符串的简单对比

TIP C C++
头文件名 include< string> include< string >
头文件目的 使用字符串处理函数 使用string类
如何声明与初始化 char str[20] = “helllo”; string str = “helllo”;
声明长度和使用NULL字符
实现字符串的赋值 strcpy(str,”world”); str = “world”;

C字符串的输入操作 

字体修改方法

1、使用输入操作符cin来填充字符串变量,char str[20];cin>>str; 

注意:以这种方式来读取字符串时,会忽略最初的空白字符(空格、制表符和换行符),而且输入会在下一个空格或换行符处停止;

2、使用预定义函数getline获取整行输入(包括空格)。char str[20]; getline(str,20);遇到行结束的时候输入才会停止; 

注意:getline 函数有两个参数,第一个参数用于接收输入的C字符串变量;第二个参数用于规定getline最多能接收的字符个数。

C++string类的输入操作 

1、使用输入操作符cin, string str; cin>>str; 

2、使用getline函数, string str; getline(cin,str); 

3、返回字符串的长度,str.length(str);

C字符串和C++string对象之间的转换 

1、C字符串存储到string类型的变量中,例如:

char str[] = "hello";
string mystr;
mystr = str;

2、C++string对象不能自动的转换为C字符串,需要进行显示的类型转换,需要用到string类的成员函数c_str() , strcpy ( a, b.c_str() );

字符串到数字的转换 

atoi函数获取一个C字符串参数,返回对应的int值。如果参数不与一个int值对应,atoi就会返回0。atoi函数在文件为cstdlib的库中。

atoi ( "1234" );//返回整数1234
atoi ( "#123" );//返回0
/* 判断字符串是否为回文字符串*/

#include <iostream>
#include <cstring> using namespace std; bool Palindrome (char* str, int len) {
if (str == NULL) {
return false;
}
bool m = true;
for (int i = 0,j = len-1; i < len; i++,j--) {
if (str[i] != str[j]) {
m = false;
}
}
return m;
} int main (void) {
char mystr[100];
cin>>mystr;
cout<<Palindrome( mystr, strlen(mystr) )<<endl;
return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangjun_huster/article/details/66476757

最新文章

  1. css动画与js动画的区别
  2. HTML5桌面通知:notification
  3. rivers ioi2005 树形dp
  4. WebClient.UploadValues Post中文乱码的解决方法
  5. Cracking the coding interview
  6. 解决div里面img的缝隙问题~
  7. python cookbook学习笔记 第一章 文本(1)
  8. C++指针与const
  9. MVC+EF 入门教程(三)
  10. 设计模式之中介者模式(Mediator )
  11. T4代码生成脚本从添加注释,添加命名空间开始(一款强大的代码生成工具从看懂脚本,到随心所欲的玩弄代码,本文只是T4的冰山一角,博主将不断深入探索并完善该文章)
  12. 皮皮虾FAQ
  13. SQL Server进阶(十二)函数
  14. git简易使用
  15. jQuery-contextMenu使用教程
  16. cefsharp
  17. object-c 混编 调用C,C++接口
  18. U-Mail详解邮件营销优势及应用领域
  19. SQL学习笔记四(补充-2)之MySQL多表查询
  20. brew安装指定版本boost

热门文章

  1. Arrange the Bulls
  2. Codeforces 161C(分治、性质)
  3. TVS选型
  4. MS SqlServer之Exec和EXEC SP_EXECUTESQL
  5. 把本地项目上传到github 不使用eclipse
  6. LCA 离线做法tarjan
  7. java内存分配(堆、栈、常量池)
  8. 集合、迭代器、增强for循环、泛型
  9. Vmware 虚拟硬盘 合并多个分割文件
  10. 用户登录保存数据实例(慕课笔记 使用SharedPreferences保存用户名)