如何在string中的特定character前后添加空格
对于char* command = "cat<1.txt>2.txt",想要再"<"与">"前后添加空格使之成为"cat < 1.txt > 2.txt" 可以使用字符串操作函数和循环来实现。以下是一个示例代码:
#include <iostream>
#include <cstring>
int main() {
char* command = "cat<1.txt>2.txt";
char new_command = ""; // 新字符串
int len = strlen(command);
for (int i = 0; i < len; i++) {
if (command[ i] == '<' || command[ i] == '>') {
strcat(new_command, " "); // 在特定字符前添加空格
strncat(new_command, &command[ i], 1); // 添加特定字符
strcat(new_command, " "); // 在特定字符后添加空格
} else {
strncat(new_command, &command[ i], 1); // 添加其他字符
}
}
std::cout << new_command << std::endl;
return 0;
}
解释:
1. 首先定义了原始字符串command和一个新字符串new_command ,长度为 100。
2. 使用strlen函数获取原始字符串的长度。
3. 使用for循环遍历原始字符串中的每个字符。
4. 如果当前字符是<或> ,则在新字符串中添加空格、特定字符和空格,以达到在特定字符前后添加空格的效果。
5. 如果当前字符不是<或> ,则直接将其添加到新字符串中。
6. 最后,输出新字符串。
输出结果为: cat < 1.txt > 2.txt 问题分析:
对于给定的字符数组 char* command = "cat<1.txt>2.txt",我们需要在字符 < 和 > 前后添加空格。
解决方案:
一种简单的方法是创建一个新的字符数组来存储结果,然后遍历原始字符串,并在满足条件的位置上插入空格。
下面是代码示例:
++
#include <iostream>
#include <cstring>
int main() {
const char* command = "cat<1.txt>2.txt";
int len = strlen(command);
char newCommand;// 创建一个新的字符数组来存储结果
int j = 0;
for (int i = 0; i < len; i++) {
if (command == '<' || command == '>') {
newCommand = ' ';// 在特定字符前添加空格
newCommand = command;// 复制特定字符
newCommand = ' ';// 在特定字符后添加空格
} else {
newCommand = command;// 复制其他字符
}
}
newCommand = '\0';// 添加字符串结尾标志
std::cout << newCommand << std::endl;
return 0;
}
运行以上代码,将会输出结果:"cat < 1.txt > 2.txt"。
希望以上解答对你有帮助!如果还有其他问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
#include <stdio.h>
int main(void)
{
char command="cat<1.txt>2.txt>3.txt" ;
int i , k , m ;
printf("%s\n" , command) ;
for(m = 0 ; command ; m ++) ;
for(k = 0 ; command ;) {
for(; command && command != '<' && command != '>' ; k ++) ;
if(command) {
for(i = m ; i > k ; i --) command = command ;
command = command ;
command = command = ' ' ;
k += 2 ;
m += 2 ;
}
}
printf("%s\n" , command) ;
}
编译、运行实况:
D:\\C>g++ -o x2 x2.c
D:\\C>x2
cat<1.txt>2.txt>3.txt
cat < 1.txt > 2.txt > 3.txt
D:\\C>
页:
[1]