编写一个C++程序:在输入的非空字符串中右截取 M 个字符,显示截取的子串内容。
时间: 2024-05-09 14:18:37 浏览: 12
以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int m, len;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
printf("请输入要截取的字符数:");
scanf("%d", &m);
if (m >= len) {
printf("截取的字符数大于等于字符串长度,无法截取。\n");
return 0;
}
printf("截取后的子串为:");
for (int i = len - m; i < len; i++) {
printf("%c", str[i]);
}
printf("\n");
return 0;
}
```
该程序首先读取一个非空字符串,并获取其长度。然后要求用户输入要截取的字符数,如果该数字大于等于字符串长度,则提示无法截取并退出程序。
否则,程序从原字符串的倒数第 m 个字符开始遍历,将每个字符打印出来,最终输出截取后的子串。
相关问题
截取一个大字符串中两个特定字串之间的内容(c++)
在 C++ 中,可以使用字符串的 `find()` 和 `substr()` 函数来截取两个特定子串之间的内容。下面是一个示例代码:
```cpp
#include <iostream>
#include <string>
std::string extractSubstring(const std::string& sourceString, const std::string& startSubstring, const std::string& endSubstring) {
size_t startIndex = sourceString.find(startSubstring);
size_t endIndex = sourceString.find(endSubstring);
if (startIndex == std::string::npos || endIndex == std::string::npos) {
return "未找到指定的子串";
}
startIndex += startSubstring.length();
return sourceString.substr(startIndex, endIndex - startIndex);
}
int main() {
std::string sourceString = "这是一个示例字符串,开始子串在这里,结束子串在这里。";
std::string startSubstring = "开始子串";
std::string endSubstring = "结束子串";
std::string extractedString = extractSubstring(sourceString, startSubstring, endSubstring);
std::cout << extractedString << std::endl;
return 0;
}
```
在这个例子中,`extractSubstring()` 函数接受三个参数:`sourceString` 是要截取的大字符串,`startSubstring` 是要截取内容的起始子串,`endSubstring` 是要截取内容的结束子串。函数首先使用 `find()` 函数找到这两个子串在大字符串中的位置,然后使用 `substr()` 函数截取它们之间的内容。如果找不到指定的子串,则返回一个提示信息。
你可以根据你的需求修改 `sourceString`、`startSubstring` 和 `endSubstring` 的值,并调用 `extractSubstring()` 函数来提取你想要的内容。
能给一个c++用函数截取字符串具体实例吗
当然可以,以下是一个简单的例子:
```c
#include <stdio.h>
#include <string.h>
void substring(char s[], int start, int end) {
for (int i = start; i < end; i++) {
printf("%c", s[i]);
}
}
int main() {
char str[] = "Hello, world!";
substring(str, 0, 5); // 输出 "Hello"
return 0;
}
```
这个例子中,我们定义了一个名为 `substring` 的函数,它接受三个参数:一个字符串 `s`,一个起始位置 `start` 和一个结束位置 `end`。函数的作用是输出字符串 `s` 中从位置 `start` 到位置 `end-1` 的子串。在 `main` 函数中,我们定义了一个字符串 `str`,然后调用 `substring` 函数输出了它的前五个字符。