English 中文(简体)
将char数组的一部分复制到c中的字符串
原标题:copying part of the char array to a string in c

我读了很多建议的问题,但仍然找不到答案。我知道缓冲区中的内容是一个以NULL结尾的char数组,我想将其复制到一个动态分配的char数组中。然而,我一直从strcpy函数中得到分段错误。谢谢你的帮助。

void myFunction()
{
    char buffer[200];

    // buffer was filled by recvfrom correctly, and can be printed out with printf()
    char *message = malloc(200);

    strcpy(message, buffer[1]);
}

////////////////

好的,所以我尝试了<code>strcpy(message,&;buffer[1]);strcpy(消息,缓冲区)但什么都没用!!

最佳回答

您对strcpy(3)的调用不正确。将其更改为以下内容:

    buffer[199] =   ;
    strcpy(message, &buffer[1]);

strcpy(3)具有以下签名:

 char *
 stpcpy(char *s1, const char *s2);

您已通过:

 char *stpcpy(char *s1, const char s2); /* won t work */

我建议使用memcpy(3。

问题回答

这对我有效。你的缓冲区可能不是以null结尾的吗?

char buffer[200];
buffer[0] =  h ;
buffer[1] =  e ;
buffer[2] =  l ;
buffer[3] =  l ;
buffer[4] =  o ;
buffer[5] =   ;

// buffer was filled by recvfrom correctly, and can be printed out with printf()
char *message = (char *)malloc(200);
strcpy(message, buffer);




相关问题
Simple JAVA: Password Verifier problem

I have a simple problem that says: A password for xyz corporation is supposed to be 6 characters long and made up of a combination of letters and digits. Write a program fragment to read in a string ...

Case insensitive comparison of strings in shell script

The == operator is used to compare two strings in shell script. However, I want to compare two strings ignoring case, how can it be done? Is there any standard command for this?

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

String initialization with pair of iterators

I m trying to initialize string with iterators and something like this works: ifstream fin("tmp.txt"); istream_iterator<char> in_i(fin), eos; //here eos is 1 over the end string s(in_i, ...

break a string in parts

I have a string "pc1|pc2|pc3|" I want to get each word on different line like: pc1 pc2 pc3 I need to do this in C#... any suggestions??

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...