C++ string_demo

string类的使用  以及string与char * 之间相互转换

string字符串 长度  相加 比较 子串查找


#include <string>    //  使用 string 类时须包含这个文件
#include <iostream>

using namespace std;

int main()
{
    string str1;
   
    //  输入与输出
    cout << "输入字符串 str1" << endl;
    cin >> str1; 
	getchar();
    cout << str1  << endl;
    
    //  一行行读取  
    cout << "输入字符串 str1" << endl;
    getline( cin, str1 );//读入一行字符串string
    cout << str1 << endl;

    //  与 c字符转换  
    string str2("Hello World!"), str3;
    char   str4[50];

    cout << "输入 C 字符串" << endl;
    scanf("%s",str4);
    str3= str4;//string str3;  char str4[50]  str3 = str4;  (char[] -->string )

    cout << "str2 is " << str2 << endl;
    cout << "str3 is " << str3 << endl << endl << endl;

    //  求string类型字符串的长度
    string str5;
    cout << "输入字符串 str5" << endl;
    cin >> str5;
    int   len= str5.size();//string str5    str5.size()  
    cout << "字符串 str5的长度为" << len << endl << endl << endl;

    //  遍历字符串例子
    string str6;
    cout << "输入字符串 str6" << endl;
    cin >> str6;
    int i;
    for( i= 0; i< str6.size(); ++i )
    cout << str6[i];
    cout << endl << endl;

    //  比较两个字符串 string  比较(直接 大小于)规则同 c字符串比较规则
    string str7, str8;
    cout << "输入字符串 str7, str8 , 中间用空格格开" << endl;
    cin >> str7 >> str8;

    if( str7< str8 ) 
		cout << str7 << "  小于 " << str8 << endl;
    else if( str7> str8 ) 
		cout << str7 << "  大于 " << str8 << endl;
    else 
		cout << str7 << "  等于 " << str8 << endl;
    
    
    //  字符串**与字符相加*** 
    string str9= "Darren";//可以改变的字符串  例如  +操作
    char ch1= 'a', ch2= 'b';
    str9= str9+ ch1; 
	cout << str9 << endl << endl;
    str9= ch2+ str9; 
	cout << str9 << endl << endl << endl;
    
    //  字符串***与字符串相加***
    string str10= "Acm", str11= "ICPC";
   // str10.append( str11 );//append
	str10 = str10 + str11;//效果同上
    cout << str10 << endl << endl;
    
    //  字符串是否包含子串  如果包含 则返回子串在目标串中第一次出现的位置 
    string str12= "I am a student", str13= "student", str14= "aaaaaaa";
    if( str12.find( str13 )!= -1 )  
		cout << "Find " << str13 << endl;
    if( str12.find( str14 )== -1 )  
		cout << "Not Find  " << str14 << endl;
    
    //  转换成 c_字符串  (string  -->char [])
    string str15= "Hello World";
	char str16[10];
	strcpy(str16,str15.c_str());//char *strcpy(char* dest, const char *src);
    printf("%s\n", str16 );
     
    system("pause"); 

    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++中的size_type是一种类型,用于表示容器的大小或索引的类型。它是一个与机器相关的unsigned类型,其大小足以保证存储内存中对象的大小。在标准库中,不同的容器可能使用不同的size_type类型来表示大小或索引。例如,vector容器使用vector::size_type来表示大小。\[1\]在string类型中,size()成员函数返回的是string::size_type类型的值,它定义为与unsigned型具有相同的含义,足够大以存储任意string对象的长度。为了使用由string类型定义的size_type类型,需要使用作用域操作符来说明所使用的size_type类型是由string类定义的。\[3\]下面是一个简单的示例代码,演示了如何使用string::size_type来遍历字符串中的字符:\[3\] ```cpp #include <iostream> #include <string> using namespace std; int main() { string str("This is a simple demo!"); for (string::size_type index = 0; index != str.size(); ++index) { cout << str\[index\]; } cout << endl; return 0; } ``` 这段代码使用了string::size_type类型的index变量来遍历字符串str中的每个字符,并将其输出到屏幕上。\[3\] #### 引用[.reference_title] - *1* [c++: size_type与 size_t一些概念](https://blog.csdn.net/lzx_bupt/article/details/6558566)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [C++自学血汗史(八):size_type类型到底是啥](https://blog.csdn.net/Promise11161314/article/details/127106828)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [size_type、size_t、differentce_type以及ptrdiff_t](https://blog.csdn.net/liushuiwen101423/article/details/39548479)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值