C16-6.1字符数组与string
原题链接:38471.note12025-06-02 10:12:04
发布于:江苏
一、作业回顾
T1
#include<iostream>
using namespace std;
int a[105], n, l , r;
int main()
{
cin >> n >> l >> r;
for (int i=1; i<=n; i++) cin>>a[i];
//统计数量
int cnt = 0;
for (int i=1; i<=n; i++) {
if (l<=a[i] && a[i]<=r) cnt++;
}
cout <<cnt << endl;
//输出范围内的数
for (int i=1; i<=n; i++) {
if (l<=a[i] && a[i]<=r) cout<<a[i]<<" ";
}
cout<<endl;
//输出范围外的数字
for (int i=1; i<=n; i++) {
// if (!(l<=a[i] && a[i]<=r)) cout<<a[i]<<" ";
if (l>a[i] || a[i]>r)) cout<<a[i]<<" ";
}
return 0;
}
/*
6 3 6
9 8 3 5 6 5
*/
T2 奇偶交换
#include<iostream>
using namespace std;
int main(){
int n, a[20005] = {};
cin >> n;
for (int i=1; i<=n; i++) cin>>a[i];
for (int i=1; i<=n; i+=2){
cout<<a[i+1] << ' ' << a[i] << ' ' ;
}
return 0;
}
二、字符
#include<iostream>
using namespace std;
int main()
{
cout<< (int)'A'<< endl;
for (char i=65; i<=90; i++){
cout << i << char(i+32) << ' ';
}
return 0;
}
ASCII
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。
无论如何都要记住的三个ASCII码值
'0': 48
'a': 97
'A': 65
char ch = 'a';
cout << (int)ch << endl; //97
for (int i=65; i<=90; i++){
cout << (char)i << "";
printf("%c ", i+32); //char类型的占位符
}
char ch = '9'; //(48)->0
cout << ch - '0' << endl;
cout << ch - 48 << endl;
所有的字符串都是以'\0'结尾的。
ps: ascii码为0的就是啥也没有。
三、字符数组
字符数组表示的字符串
#include<iostream>
#include <cstring>
using namespace std;
int main(){
// string
char s[100] = "helloworld123";
// 计算实际长度
// cout << s << endl;
int len=strlen(s);
cout << len << endl;
//字符串都是以'\0'结尾的
// for (int i=0; s[i] != '\0'; i++){
for (int i=0; i<len; i++){
cout << s[i] << endl;
}
return 0;
}
四、字符串(string)和字符数组的对比
#include<iostream>
using namespace std;
int main(){
string s;
// cin >> s;
getline(cin, s);
cout << s.size() << endl; //cout << s.length() << endl;
cout << s << endl;
#if 0
char s[1005];
// cin>>s;
fgets(s, 1005, stdin);
cout << strlen(s) << endl;
cout<<s << endl;
#endif
return 0;
}
五、大小写转换
#include<iostream>
using namespace std;
int main(){
string s;
getline(cin, s);
int len = s.size();
for (int i=0; i<len; i++){
//如果是大写, 那么转换成小写
if ('A'<=s[i] && s[i]<='Z'){
s[i] += 32;
}
}
cout << s;
return 0;
}
六、作业提示
注意以下为提示代码,并非完整正确答案
homework1:
#include<iostream>
using namespace std;
int main(){
string s;
cin >> s;
int len = s.size();
for (int i=0; i<len; i++){
cout << s[i];
}
return 0;
}
homework2:
#include<iostream>
using namespace std;
int main(){
string s;
cin >> s;
int len = s.size();
int sum = 0;
for (int i=0; i<len; i++){
if (数字){
sum += (s[i]-48);
}
}
cout <<sum;
return 0;
}
这里空空如也
有帮助,赞一个