正如标题所说,有什么区别
char a[] = ?string?; and
char *p = ?string?;
Run Code Online (Sandbox Code Playgroud)
这个问题在接受我采访时被问到了.我甚至不理解这个说法.
char a[] = ?string?
Run Code Online (Sandbox Code Playgroud)
什么是?运营商?它是字符串的一部分还是具有某些特定含义?
在编写一个简单的函数来从字符串中删除特定字符时,我遇到了这个奇怪的问题:
void str_remove_chars( char *str, char to_remove)
{
if(str && to_remove)
{
char *ptr = str;
char *cur = str;
while(*ptr != '\0')
{
if(*ptr != to_remove)
{
if(ptr != cur)
{
cur[0] = ptr[0];
}
cur++;
}
ptr++;
}
cur[0] = '\0';
}
}
int main()
{
setbuf(stdout, NULL);
{
char test[] = "string test"; // stack allocation?
printf("Test: %s\n", test);
str_remove_chars(test, ' '); // works
printf("After: %s\n",test);
}
{
char *test = "string test"; // non-writable?
printf("Test: %s\n", …Run Code Online (Sandbox Code Playgroud) 可能重复:
为什么在写入字符串时会出现分段错误?
我希望这个程序的输出是:ibjgsjfoet但是我得到了一个分段错误.
#include <stdio.h>
int main()
{
char *p="haifriends",*p1;
p1=p;
while(*p!='\0')
++*p++;
printf("%s %s",p,p1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)