字符指针
#include <bits/stdc++.h>
using namespace std;
const int N = 110;
char s[] = "Hello";
int main(){
char *p = s;
printf("%s\n", s);
printf("%c\n", s[4]);
printf("%c\n", *p);
printf("%c\n", *(p + 4));
printf("%c\n", *p + 4);
cout << p << '\n';
// 需要注意的是,字符串的以“\0”结尾,
// 所以对于“Hello”这个字符串实际上含有6个字符
// 因为表示字符串结尾标志的”\0“是自动添加的。
for (int i = 0; s[i] != '\0'; i++) cout << s[i];
puts("");
return 0;
}
// 字符串的创建,含有多种语法
// 比较重要的一点是初始化时可以不指定数组长度
char duckName[6] = {'D','a','v', 'i', 'd'};
char duckName[6] = "David";
char duckName[] = "David";
#include <bits/stdc++.h>
using namespace std;
const int N = 110;
char s[N];
void f1(char s[]){
printf("%s\n", s);
}
void f2(char *s){
for (; *s != '\0'; s++) printf("%c", *s);
puts("");
}
int main(){
scanf("%s", s);
f1(s);
f2(s);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
const int N = 110;
char s[N];
int len;
void f(char *s){
for (int i = 0; i < len; i++) printf("%c", *(s + i));
puts("");
}
int main(){
scanf("%s", s);
len = strlen(s);
f(s);
return 0;
}
指针与字符串
// 字符串的表示形式
#include <bits/stdc++.h>
using namespace std;
int main(){
char s1[] = "Hello s1!";
printf("%s\n", s1);
char *s2 = "Hello s2!"; // 把字符串的第1个元素的地址,赋值给了s2
printf("%s\n", s2);
return 0;
}
// %s 是输出字符串时用到的格式符,在输出项中,给出字符指针变量名,则系统先输出它所指的一个字符数据
// 然后自动使 s2 加1,使之指向下一个字符
// 然后再输出一个字符
// 直到,遇到字符串结束标志'\0'为止
// 字符串指针,作为函数参数
// 可以改变字符串里的内容
#include <bits/stdc++.h>
using namespace std;
char s[110];
void solve(char *s){
int len = strlen(s);
for (int i = 0; i < len; i++) s[i] -= 32;
}
int main(){
scanf("%s", s);
char *p = s;
solve(p);
printf("%s\n", s);
return 0;
}
/*
输入:abc
输出:ABC
*/
// 下面这样写也是等价的
#include <bits/stdc++.h>
using namespace std;
char s[110];
void solve(char *s){
int len = strlen(s);
for (int i = 0; i < len; i++) s[i] -= 32;
}
int main(){
scanf("%s", s);
solve(s); //传递的时候,传递数组的名称,就是指针
printf("%s\n", s);
return 0;
}
// 下面这样写也是等价的
#include <bits/stdc++.h>
using namespace std;
char s[110];
void solve(char s[]){ //形参,写成char s[],这也是个指针
int len = strlen(s);
for (int i = 0; i < len; i++) s[i] -= 32;
}
int main(){
scanf("%s", s);
solve(s);
printf("%s\n", s);
return 0;
}