今天是c语言基础打卡的第32天,主要内容是对字符串的操作。
相关链接:
【第32题】给定一个字符串,原地对它进行翻转并输出
🧑🏻作者简介:一个从工业设计改行学嵌入式的年轻人
✨联系方式:2201891280(QQ)⏳全文大约阅读时间: 10min
🎁主要知识点
字符串反转
将一个字符串反转 只需要将前面的元素和后面的元素进行交换。进行
n / 2
交换操作即可完成。
void swap(char* a, char* b) { // 交换两个字符
char tmp;
tmp = *a, *a = *b, *b = tmp;
}
void reverseString(char str[]) { // 字符串反转
int len = strlen(str);
for(int i = 0; i < len / 2; ++i) {
swap(&str[i], &str[len-i-1]);
}
}
📓课后习题
344. 反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组
s
的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
解题思路
直接从
0 - n /2
反转字符串就好了。
void reverseString(char* s, int sSize){
for(int i = 0; i < sSize/2; ++i){
s[i] = s[i] ^ s[sSize - i -1];
s[sSize - i -1] = s[i] ^s[sSize - i -1];
s[i] = s[i] ^s[sSize - i -1];
}
}
📑写在最后
最近考试,题目还好不难,不然真的是很难坚持下去呀。大家一起加油。这个c语言打卡也是从之前的几十人到现在就十几个人了呢,然后我在写时间规划的文件,如果完工了还希望大家能支持一下呀0.0