更具体地说,我试图用四个星号替换我的指针指向的四个字符,而不使用字符数组。
因此,如果我使用此方法的单词char *word = "Word"
将返回****
。
这是我到目前为止所拥有的,
void four_stars(char *start){
char *temp = start;
int length = 0;
while(*temp){
length++;
temp++;
}
if(length==4){
while(length>=0){
start = '*';
start++;
length--;
}
}
}
我使用单词char *word = "This"
对其进行了测试,输出只是This
,这是同一个单词。
我对c编程很陌生,所以我做错了什么?
答案 0 :(得分:0)
如果您有char *word = "Word"
,则无法修改"Word"
。这是因为,在C和C ++中,字符串文字是不可修改的。你必须从一个可写存储区中的字符串开始,例如:
char word[] = "Word";
或
char *word = malloc(5);
strcpy(word, "Word");
然后您的功能会起作用(如果您将start = '*';
更改为*start = '*';
)。
答案 1 :(得分:-1)
// the code you wrote has a few flaws
// rather than trying to list the flaws
// I just provide a simplistic/brute force example to accomplish the function
void four_stars(char *start)
{
start[0] = '*';
start[1] = '*';
start[2] = '*';
start[3] = '*';
}