簡體   English   中英

在c中復制字符串的分段錯誤

[英]segmentation fault with copying string in c

以下代碼顯示了細分錯誤。 如何解決問題? 代碼有什么問題?

#include <stdio.h>

void stcp (char *, char *);

int
main ()
{
  char *s = "This is first string";
  char *t = "string to be copied";
  stcp (s, t);
  printf ("%s", s);
  getch ();
}

void
stcp (char *s, char *t)
{
  while ((*s++ = *t++) != '\0');

}

默認情況下,字符串文字是const 要使其成為非常量,必須使其成為數組:

char s[] = "this is my string";
char t[] = "another string";
#include <stdio.h>

void stcp (char *s, char *t);

int main (void)
{
  int i;
  char s[] = "This is first string";
  char t[] = "string to be copied        ";
  stcp (s, t);
  printf ("%s\n", s);
  printf ("%s\n", t);
  //getch ();
  return 0;
}

void stcp (char *s, char *t)
{
  int i;
  for (i=0;  (s[i]  != '\0')  &&  (t[i] != '\0') ;i++) {
    printf("%c  %c\n",s[i],t[i]);
    s[i] = t[i];
  }
  s[i] ='\0';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM