相关疑难解决方法(0)

如何用其他字符替换字符串中的特定字符

我正在尝试创建一个程序,将一个字符串作为输入,并用*符号替换所有元音.因此,对于"hello world",star_vowels应返回"h*ll*w*rld".

到目前为止我的代码是:

int star_vowels(char s[]){

    int j;

    j = 0;
    while (s[j] != '0'){
        j++;
        if (s[j] = 'a' || s[j] == 'e' || s[j] == 'i' || s[j] == 'o' || s[j] == 'u'){
            putchar('*');
        } else {
            putchar(j);
        }
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

c

4
推荐指数
1
解决办法
3万
查看次数

更改C中指针字符串数组的值

是否可以通过这种方式更改由字符串指针初始化的字符数组中的值:

char *word;
word = (char*) malloc(10 * sizeof(char));
word = "Test";
word[2] = 'w';

return 0;
Run Code Online (Sandbox Code Playgroud)

执行上面的代码时出现分段错误.

c arrays string malloc pointers

2
推荐指数
1
解决办法
4045
查看次数

将正斜杠转换为反斜杠

这是我尝试的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *convertDirec(char direc[]){
    for(int i = 0; i < strlen(direc); i++){
        if(direc[i]=='/'){
            direc[i]=='\\';
        }
    }
    return direc;
}

int main(){
    printf("%s", convertDirec("C:/Users/user/Documents/data.csv"));
}

Run Code Online (Sandbox Code Playgroud)

但是,该printf语句main仅打印相同的路径。我在网上找到了另一个与此相关的资源,其逻辑似乎与我的相同,因此我不确定我的错误在哪里。我尝试这样做direc[i] == "/",但这给出了相同的结果。我也尝试替换随机字母,但这也失败了。

我也尝试使用指针来执行此操作,但这也不起作用。

char *convertDirec(char direc[]){
    for(char *p = direc; *p != '\0'; ++p){
        if(*p == '/')
            *p='\\';
    }
    return direc;
}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏,谢谢。

c string loops

1
推荐指数
2
解决办法
70
查看次数

标签 统计

c ×3

string ×2

arrays ×1

loops ×1

malloc ×1

pointers ×1