深圳市建设设计院网站,做网站费用上海,滨州网站建设公司报价,一级a做爰片免费网站文章目录C014-C字符串字符串目标char[]和stringchar[]char*string字符常量与字符串常量字符串的输入题目描述 字符串输出题目描述在线练习#xff1a;总结C014-C字符串 在线练习#xff1a; http://noi.openjudge.cn/ https://www.luogu.com.cn/
字符串
目标 1、了解字符串…
文章目录C014-C字符串字符串目标char[]和stringchar[]char*string字符常量与字符串常量字符串的输入题目描述 字符串输出题目描述在线练习总结C014-C字符串 在线练习 http://noi.openjudge.cn/ https://www.luogu.com.cn/
字符串
目标 1、了解字符串的基本概念 2、掌握字符串输入输出方法 3、掌握字符串复制、拼接、比较大小、求长度等方法 参考:https://www.cnblogs.com/zhaoyunt/p/15360127.html
char[]和string
先阐述C中char[]string的区别和联系.
char[]
#include iostream
using namespace std;
int main()
{char a[10] 123;a[4]5;a[3]4;cout a;return 0;
}
// 输出12345此程序在a[5]的位置自动写入了\0终止符注意这里的char [] 数组 如果是全局变量静态变量一般编译器具体要依赖于具体所使用的编译器和系统会采用默认原则将内部的所有位置设置为0 如果是局部变量由于局部变量的内存分配是在栈上如果未对char数组进行初始化的话数组内的数据取决于此处原来的数据。同理动态变量在堆上同样数据为任意值。 char*
参考https://blog.csdn.net/weixin_42322256/article/details/121450646 1、字符串char*
char *str1abcde; //这是一个字符串常量存储在静态存储区是只读的。
const char *str1 abcde;
char const *str1 abcde; //注意这两种写法等价
//其中str1是一个变量代表的意思就是字符串的第一个字符的值案例
#include iostream
using namespace std;
int main()
{char arr[] abcdef;char* pc2 arr; //数组首元素地址赋值给指针pc2指针大小只有4字节不可能放下整个数组cout *pc2 endl; //输出是a说明pc2存放的只是数组首元素地址cout pc2 endl; //abcdef 表示从pc2指向的地址位置开始打印cout arr endl; //abcdefreturn 0;
}输出为
此处参照此博客
关于字符串常量字符数组字符常量https://blog.csdn.net/wuwuku123/article/details/103575620
const char * 、char const * 、 char * const 三者的区别https://blog.csdn.net/qq_40244176/article/details/80765975
string
char是一个字符类型 C的内置类型char *是字符指针 而string是一个字符容器是一个扩展的模版类。 一、先解释char*字符串和string对象的区别。
1、定义 stringstring是CSTL当中的一个容器对其进行了封装所以操作起来非常方便。 char*char*是一个指针可以指向一个字符串数组至于这个数组可以在栈上分配也可以在堆上分配堆得话就要你手动释放了。 2、区别 string的内存管理是由系统处理除非系统内存池用完不然不会出现这种内存问题。 char*的内存管理由用户自己处理很容易出现内存不足的问题。 当我们要存一个串但是不知道其他需要多少内存时用string来处理就最好不过了。 当你知道了存储的内存的时候可以用char*但是不如用string的好用指针总会有隐患。 用string还可以使用各种成员函数来处理串的每一个字符方便处理。 用char*处理串就不如string的方便了没有相应的函数来直接调用而是要自己编写函数来完成串的处理而且处理过程中用指针还很容易出现内存问题。
3、注意 当我们定义了一个string就不能用scanf(“%s”,s)和printf(“%s”,s)输入输出。主要是因为%s要求后面是对象的首地址。 #include iostream
#include string
using namespace std;int main(){string s1;//变量 s1 只是定义但没有初始化编译器会将默认值赋给 s1默认值是也即空字符串。string s2 c plus plus;//变量 s2 在定义的同时被初始化为c plus plus。与C风格的字符串不同string 的结尾没有结束标志\0。string s3 s2;//变量 s3 在定义的时候直接用 s2 进行初始化因此 s3 的内容也是c plus plus。string s4 (5, s);//变量 s4 被初始化为由 5 个s字符组成的字符串也就是sssss。return 0;
}从上面的代码可以看出string 变量可以直接通过赋值操作符进行赋值。string 变量也可以用C风格的字符串进行赋值例如s2 是用一个字符串常量进行初始化的而 s3 则是通过 s2 变量进行初始化的。 字符常量与字符串常量 字符串的输入
1.cin字符串名;
string s1;//定义一个字符串变量s1
cins1;//直接输入s1字符串【注意】cin语句不会输入空格、换行符等分隔符输入后空格、换行符仍然留在输入缓冲区);
getline(cin,字符串名);
string s1;
getline(cin,s1);//获取一行;题目描述 字符串输出
【描述】 输入两个单词用空格隔开然后分两行分别输出这两个单词 【输入】 1行两个单词用空格分隔; 【输出】 2行两个单词每个单词一行;
#include iostream
#include string
using namespace std;int main(){string s1,s2;cins1s2;couts1endls2;return 0;
} 题目描述
【描述】 输入一个数字这个数字可能是1也可能是2然后分两行输入两个英文语句。如果是1就输出第一个句子如果是2就输出第二个句子 【输入】 3行;第1行是一个数字;接下来的两行是2句英文句子。注意句子中会存在空格以换行符结束; 【输出】 1行1个句子; 【样例输入】 1 l am a student. My name is Hanmeimei. 【样例输出】 l am a student.
代码
#include iostream
#include string
using namespace std;int main(){int n;string s1,s2;cinn;getline(cin,s1);getline(cin,s1);getline(cin,s2);if(n1) couts1;else couts2;return 0;
}在线练习
http://noi.openjudge.cn/
总结
本系列为C学习系列会介绍C基础语法基础算法与数据结构的相关内容。本文为C字符串案例包括相关案例练习。