我正在尝试创建一个程序,将一个字符串作为输入,并用*符号替换所有元音.因此,对于"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) 是否可以通过这种方式更改由字符串指针初始化的字符数组中的值:
char *word;
word = (char*) malloc(10 * sizeof(char));
word = "Test";
word[2] = 'w';
return 0;
Run Code Online (Sandbox Code Playgroud)
执行上面的代码时出现分段错误.
这是我尝试的代码:
#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)
任何帮助表示赞赏,谢谢。