相关疑难解决方法(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中使用strcat

好的,所以我有下面的代码在C#中将一个字符串附加到另一个,注意这只是一个例子,所以在C#中给出替代字符串连接方法并不是必须的,这只是为了简化示例.

string Data = "";
Data +="\n\nHTTP/1.1 " + Status_code;
Data += "\nContent-Type: " + Content_Type;
Data += "\nServer: PT06";
Data += "\nContent-Length: " + Content_Lengt;
Data += "\nDate: " + Date;
Data += "\n" + HTML;
Run Code Online (Sandbox Code Playgroud)

现在我想在C中做同样的事情,我试图通过以下方式做到这一点

time_t rawtime;

time ( &rawtime );

char *message = "\n\nHTTP/1.1 ";
message = strcat(message, Status_code);
message = strcat(message, "\nContent-Type: ");
message = strcat(message, Content_Type);
message = strcat(message, "\nServer: PT06");
message = strcat(message, "\nContent-Length: ");
message = strcat(message, Content_Lengt);
message = …
Run Code Online (Sandbox Code Playgroud)

c string

11
推荐指数
3
解决办法
5万
查看次数

标签 统计

c ×2

string ×2

arrays ×1

pointers ×1

stack ×1