catalpa-bungei 发表于 2023-9-26 21:39:52

如何在string中的特定character前后添加空格

对于char* command = "cat<1.txt>2.txt",想要再"<"与">"前后添加空格使之成为"cat < 1.txt > 2.txt"

isdkz 发表于 2023-9-26 21:40:03

可以使用字符串操作函数和循环来实现。

以下是一个示例代码:

#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

Mike_python小 发表于 2023-9-26 21:40:25

问题分析:

对于给定的字符数组 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:}

jackz007 发表于 2023-9-26 22:11:15

#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]
查看完整版本: 如何在string中的特定character前后添加空格