对C++中string字符串的认识

对C++中string字符串的认识

一、字符串的定义

在C++中,字符串大多数时候用来指代string类。这时C++ STL中的一个类,包含了各种常用的字符串操作。定义方法为:
string var;
或string var(init_list);
或string var = init_value;
由于string为类,定义时实际上是定义了一个对象,而初始化方式也就决定了调用何种构造函数来进行构造。string的构造方法有很多,以最常用的方式举例:
string a;//定义一个空字符串。
string b=“test string”;//定义一个字符串并初始化为test string。

二、输入字符串的方式

(1)getchar()

  • 接收一个字符,需要有 #include < string >
void Getchar()
{
   char ch;
   ch = getchar();	//不能写成 getchar(ch)
   cout << "ch = " << ch << endl;
}

(2)gets()

  • 接收一个字符串,可以接收空格并输出,需要有 #include < string >
void Gets()
{
  char arr[20] = { 0 };
  gets(arr);		//不能写成 arr = gets()
  printf("arr = %s\n", arr);
}

(3)cin >>

  • 接受数字
void Cin1()	
{
   int a, b;
   cin >> a >> b;
   cout << "a - b = " << a - b << endl;
}
  • 接受一个字符串,遇“空格”、“Tab”、“回车”都结束
void Cin2()		
{
   char arr[20];
   cin >> arr;
   cout << "arr: " << arr << endl;
}

(4)cin.get()

  • cin.get(字符数组名,接收字符数)可接收一行字符串,可接收空格,自动接收一个 ‘\0’
  • cin.get(字符变量名)可用来接收一个字符
void Cinget1()	
{
   char ch;
   ch = cin.get();
   //cin.get(ch);
   cout << "ch = " << ch << endl;
}

三、字符串常用方法

(1)创建string对象

  • 用字符数组value
char[] value ={"a","b","c","d"};
String str = new String(value);
//相当于String str = newString("abcd")
  • 用字符数组以x开始的n个字符
char[] value ={"a","b","c","d"};
String str = new String(value, 1, 2);
//相当于String str = newString("bc");

(2)给string赋值

  • 使用assign()函数

1,直接用另一个字符串赋值,如str2.assign(str1);即用str1给str2赋值.
2,用另一个字符串的一个子串赋值,如str3.assign(str1, 2, 3);
3,用一个字符串的前一段子串赋值,如str4.assign(“World”, 5);
4,用几个相同的字符,赋值,如str5.assign(10, ‘c’);
具体代码如下:

 #include<iostream>
 using namespace std;

int main()
{	
	string str1("honey");
    string str2;
    string str3;
    string str4;
    string str5;
   
    str2.assign(str1);
    str3.assign("girls", 4);
    str4.assign(str1, 2, 3);
    str5.assign(10, 'c');
	
	cout<<str1<<endl;
    cout<<str2<<endl;
    cout<<str3<<endl;
    cout<<str4<<endl;
    cout<<str5<<endl;
    system("pause");
    return 0;
}

(3)string类的获取

  • 获取字符串长度
String str = new String("honey");
int strlength = str.length();
  • 获取字符串某一位置的字符
String str = new String("61honey");
char ch = str.charAt(4);//ch = n
  • 获取字符串的子串
String str1 = newString("awesome");
String str2 = str1.substring(2);//str2 ="esome"
String str3 = str1.substring(2,5);//str3 ="eso"

(4)字符串中字符的大小写转换

  • public String toLowerCase()
    //所有字符转换成小写
  • public String toUpperCase()
    //所有字符转换成大写
String str = new String("PrettyGirl");
String str1 = str.toLowerCase();
//str1 = "prettygirl"
String str2 = str.toUpperCase();
//str2 = "PRETTYGIRL"

(5)除去字符串中的空格

String str = " pre tty ";
String str1 = str.trim();
int a = str.length();//a = 9
int b = str1.length();//b = 6
System.out.println(a+"\n"+b);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值