相关疑难解决方法(0)

char*str ="STRING"和char str [] ="STRING"之间的区别?

在编写一个简单的函数来从字符串中删除特定字符时,我遇到了这个奇怪的问题:

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)

c arrays string stack pointers

25
推荐指数
2
解决办法
3万
查看次数

C - "char var []"和"char*var"之间的区别?

我期待以下两个向量在RAM中具有相同的表示:

char a_var[] = "XXX\x00";
char *p_var  = "XXX";
Run Code Online (Sandbox Code Playgroud)

但奇怪的是,f(char argument[])如果我调用它,对类型库函数的调用会破坏正在运行的应用程序f(p_var).但使用还f(a_var)可以!

为什么?

c arrays string pointers

16
推荐指数
1
解决办法
6353
查看次数

需要一些C编程方面的帮助

我是C编程的新手,我在理解C编程中常见的陷阱和不同库函数的常见用法时遇到了问题.有人能指出一个很好的资源,在那里我可以学习C编程中的细微之处.还有一点可以指向一个很好的资源学习像gdb这样的调试工具.

另外我想知道char *c="hello";和之间有什么区别char c[10]="hello".有人可以告诉我在不同情况下哪一个推荐给另一个.

感谢和问候,

像老鼠.

c

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

标签 统计

c ×3

arrays ×2

pointers ×2

string ×2

stack ×1