c++初步

作业:

  1. 定义自己的命名空间,其中有string类型的变量,再定义两个函数,一个函数完成字符串的输入,一个函数完成求字符串长度,再定义一个全局函数完成对该字符串的反转
#include <iostream>
#include <cstring>
using namespace std;
namespace A{
    void fun1(string s1);
}
void A::fun1(string s1){
    cout<<s1<<endl;
}
void fun2(char arr[],int len){
    for(int i=0;i<len/2;i++){
        int temp;
        temp=arr[i];
        arr[i]=arr[len-i-1];
        arr[len-i-1]=temp;
    }
for(int i=0;i<len;i++){
    cout<<arr[i];
}
}
using namespace A;
int main()
{
   string s1="";
   cout<<"请输入字符串"<<endl;
   cin>>s1;
   fun1(s1);
   char arr[32]="";
   strcpy(arr,s1.data());
   int len=s1.size();
   fun2(arr,len);
   return 0;
}

一、第一个C++程序

1.cout输出流对象

cout控制格式输出,只能输出十六进制、八进制和十进制

//输出a的16进制
    cout << "a的十六进制:" << hex << a << endl;
cout << setbase(16) << a << endl;   //输出十六进制
 cout << "右对齐四个宽度输出a: " << dec << setw(4) << a << endl;
 cout << "左对齐四个宽度输出a: " << setw(4) << left << a << endl;
 cout << "b指定小数点后4位输出" << setprecision(4) << b << endl;  //4位包含小数点

2.cin输入流对象

//使用cin输入三个变量
    cin >> a;
    cin >> c;
    cin >> b;

二、命名空间

命名空间只能定义全局处/其他命名空间中

1.在命名空间中声明函数

#include <iostream>
using namespace std;

namespace A
{
    int a=100;
    void fun();  //在命名空间A中存放了函数声明
}

//命名空间中声明,命名空间外定义
//需要加上命名空间名和域限定符限定是哪一个命名空间中的函数
void A::fun()
{
    cout << "test" << endl;
}

int main()
{
    std::cout << A::a << endl;
    A::fun();  //test
    return 0;
}

2.命名空间冲突的解决

如果导入了命名空间中和全局变量冲突的标识符时,后续访问该标识符会报错

访问命名空间中的标识符: 命名空间名::标识符名

访问全局变量: ::标识符名; (全局变量,默认在程序的匿名空间中)

三、string字符串

c++中将字符串封装乘string类,后续可以用string定义字符串变量

1.string类

#include <iostream>
using namespace std;
int main()
{
    string s1 = "hello";  //定义了一个字符串s1并赋值为hello
    cout << "s1=" << s1 << endl;
    
    string s2(3,'a');   //定义了一个字符串s2并使用3个a初始化
    cout << "s2=" << s2 << endl;
    
    string s3(s1);   //定义了一个字符串s3使用s1初始化
    cout << "s3=" << s3 << endl;

    string s4("hi");   //定义了一个字符串s4使用hi初始化
    cout << "s4=" << s4 << endl;

    cout << "s1+s2 = " << s1+s2 << endl;  //将s1和s2拼接到一起
    s4 = s1+s2;
    cout << "s4 = " << s4;

    return 0;
}

2.  c字符串与c++字符串的转化

#include <iostream>
#include <cstring>
using namespace std;

//需要使用c_str函数和data函数玩长城C++风格向C风格的转换
int main()
{
    string s1 = "hello";  //定义了一个字符串s1并赋值为hello

    char str[100];
    strcpy(str,s1.c_str());
    cout << str << endl;

    string s2 = " world";
    strcat(str,s2.data());
    cout << str << endl;

    string s3 = str;  //C风格字符串可以直接给string类型赋值
    cout << s3 << endl;
    cout << (s3>s2) << endl;
    //string类型可以直接进行比较无需调用strcmp函数,运算符重载
    return 0;
}

3.string类中的函数

1.at()

cout<<s1.at(100)<<endl;

2.size()/length()

s1.size()

s1.length()

3.empty()/clear()

s1.empty:对字符串判空

s1.clear:清空字符串

4.字符串的判断

可以直接使用!=,==,>,>=····运算符直接判断字符串间的关系

四、bool类型

  1. bool类型的默认值,0/false
  2. bool的大小,1Byte(内存分配的最小单位是Byte)
  3. bool类型的赋值,可以直接使用true和false赋值,可以用数值直接赋值
  4. bool输出,默认以数字形式输出,如果想用单词形式输出,需要加上boolalpha,恢复数字形式,加上noboolalpha

相关推荐

  1. <span style='color:red;'>c</span>++<span style='color:red;'>初步</span>

    c++初步

    2024-03-26 08:32:01      16 阅读
  2. Object-c初步学习 三

    2024-03-26 08:32:01       36 阅读
  3. Object-c初步学习 四

    2024-03-26 08:32:01       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-26 08:32:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-26 08:32:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-26 08:32:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-26 08:32:01       20 阅读

热门阅读

  1. 算法-数据结构

    2024-03-26 08:32:01       19 阅读
  2. 【设计模式】工厂方法模式详解

    2024-03-26 08:32:01       19 阅读
  3. 【C语言】字符函数和字符串函数

    2024-03-26 08:32:01       17 阅读
  4. lqb省赛日志[18/37]

    2024-03-26 08:32:01       15 阅读
  5. php 快速入门(三)

    2024-03-26 08:32:01       21 阅读
  6. Scrapy爬虫开发实验

    2024-03-26 08:32:01       17 阅读
  7. LeetCode //C - 287. Find the Duplicate Number

    2024-03-26 08:32:01       14 阅读
  8. 连接 IPv6 服务器

    2024-03-26 08:32:01       19 阅读
  9. Git 入门教程

    2024-03-26 08:32:01       23 阅读
  10. 机器学习中的数学原理——模型评估与交叉验证

    2024-03-26 08:32:01       21 阅读