gpt4 book ai didi

c - 实现 "\\"而不是 ""(空格)

转载 作者:行者123 更新时间:2023-12-04 21:49:00 25 4
gpt4 key购买 nike

我想在 C 中复制字符串时替换每个空格的“\”。这是调用函数 system() 所必需的,它将空格标识为“\”。所以每个空格都应该替换为那个。

#include <stdio.h>

char *my_strcopy(char *destination,char *source){
char *p;
p=destination;

while(*source != '\0'){
if(*source == ' '){
*p='\\';
*p++='\\';
*p++='\\';
*p++=' ';
}
else{
*p=*source;
}
*p++;
*source++;
}
*p='\0';
return destination;
}

输出为“hello\�world\�hi”如何正确获取它。需要帮助

最佳答案

我认为当您的要求只有一个时,您为每个空间添加了太多的 \ 。您还不必要地更频繁地增加目标指针。最后,在递增循环底部的指针时没有必要引用它们,尽管这并没有坏处。

以下更正似乎会产生您想要的输出。

#include <stdio.h>

char *my_strcopy(char *destination,char *source){
char *p;
p=destination;

while(*source != '\0'){
if(*source == ' '){
*p++='\\';
*p=' ';
}
else{
*p=*source;
}
p++;
source++;
}
*p='\0';
return destination;
}

int main(){
char* src = "foobar bar bar";
char dst[2048];
my_strcopy(dst, src);
printf("%s\n", dst);
}

输出:

foobar\ bar\ bar

关于c - 实现 "\\"而不是 ""(空格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29928507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com