字符串切片训练。设计一个程序,输入是一个字符串“ abcde-fghijk-lmnopr”(样本字符串),注意:字符串前面是两个空格,最后有一个空格。然后按下列要求操作。(功能简称:字符串切片) (0)删除所输入字符串的首尾空格(要求两种方法完成:strip()和replace()),并分别输出。然后对删除空格后的字符串进行下面的操作。 (1)输出这个字符串的长度。 (2)用切片的方式用一句Python语句输出“abcdef”。 (3)用切片的方式用一句Python语句输出“fgjk”。(提示:两次切片再拼接) (4)用切片的方式用一句Python语句输出“lo”。(要求起始和结束使用反向索引) (5)使用split方法切出三个子串,并逆序输出第二个子串。 (6)输出字符串中“de”出现的次数。 (7)使用replace()方法将串中的“智能建造”用“智造”替换,并输出替换后的串。
时间: 2023-05-22 09:00:40 浏览: 118
以下是 ChatGPT 的回答:
去除首尾空格的两种方法分别是:
strip()方法:s = " abcde-fghijk-lmnopr ".strip(),输出结果为:"abcde-fghijk-lmnopr"
replace()方法:s = " abcde-fghijk-lmnopr ".replace(" ", ""),输出结果为:"abcde-fghijk-lmnopr"
1. 字符串长度为 17。
2. 用切片的方式输出“abcdef”的代码为:s[:6],输出结果为:"abcdef"。
3. 用切片的方式输出“fgjk”的代码为:s[8:12] + s[13:15],输出结果为:"fgjk"。
4. 用切片的方式输出“lo”的代码为:s[-3:-1],输出结果为:"lo"。
5. 使用split方法切出三个子串并逆序输出第二个子串的代码为:s.split("-")[1][::-1],输出结果为:"kjihg"。
6. 字符串中“de”出现的次数为 1。代码为:s.count("de"),输出结果为:1。
7. 使用replace()方法将串中的“智能建造”用“智造”替换,并输出替换后的串的代码为:s.replace("智能建造", "智造"),输出结果为:" abcde-fghijk-lmnopr "(因为样本字符串中没有“智能建造”这个词)。
相关问题
键盘输入一个字符串“abcde”进行前后的颠倒,用c语言编写
您可以使用以下C语言代码将输入的字符串颠倒:
```
#include <stdio.h>
#include <string.h>
int main()
{
char str[100], temp;
int i, j;
printf("请输入一个字符串:");
scanf("%s", str);
j = strlen(str) - 1;
for (i = 0; i < j; i++, j--)
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
printf("颠倒后的字符串是:%s", str);
return 0;
}
```
这段代码使用一个循环来交换字符串中前后对应的字符,从而达到颠倒字符串的效果。
设计一个c语言函数让十六进制字符串转二进制int型数组
设计一个C语言函数将十六进制字符串转换成二进制整数数组,可以按照以下步骤:
```c
#include <stdio.h>
#include <string.h>
#include <stdint.h>
// 定义函数,输入为十六进制字符串和数组长度
uint8_t* hex_to_binary(const char *hex_str, size_t len) {
uint8_t *binary_array = (uint8_t*)malloc(len * sizeof(uint8_t)); // 为存储结果分配内存
if (!binary_array) {
printf("Memory allocation failed.\n");
return NULL;
}
for (size_t i = 0; i < len; i++) { // 遍历每个字符
const char digit = hex_str[i]; // 当前字符
int value; // 存放当前十六进制值
if (digit >= '0' && digit <= '9') { // 单位位数字
value = digit - '0';
} else if (digit >= 'a' && digit <= 'f') { // 小写字母
value = digit - 'a' + 10;
} else if (digit >= 'A' && digit <= 'F') { // 大写字母
value = digit - 'A' + 10;
} else {
printf("Invalid character at position %zu: '%c'\n", i, digit);
free(binary_array); // 清理已分配内存并返回NULL
return NULL;
}
binary_array[i] = value << (4 * (len - 1 - i)); // 将值左移,对应二进制位
}
return binary_array;
}
int main() {
char hex_str[] = "1aBcDe"; // 示例十六进制字符串
size_t len = strlen(hex_str) / 2; // 因为每两个字符代表一位十六进制数
uint8_t *binary_array = hex_to_binary(hex_str, len);
if (binary_array) {
// 现在binary_array存储了二进制表示的数值
// ... 这里你可以打印、处理或保存这个数组
printf("Hex string converted to binary array: \n");
for (size_t i = 0; i < len; i++) {
printf("%d ", binary_array[i]);
}
free(binary_array); // 在不再需要时释放内存
}
return 0;
}
阅读全文