18

Web検索で情報を見つけることができませんでした。どこを見ればいいですか?

4

7 に答える 7

24
char myString[256]; // Input string
char dest[256];     // Destination string

strncpy(dest, myString, 10);
dest[10] = 0; // null terminate destination
于 2013-05-02T22:08:39.963 に答える
7
char source[] = "abcdefthijklmn";
char target[100];

strncpy(target, source, 10);
target[10] = '\0'; // IMPORTANT!
于 2013-05-02T22:09:37.590 に答える
4

上記の回答に追加:

char* someString = "your string goes here";

int main() 
{
  int n = 10;
  printf("(%.*s)\n", n, someString);

  return 0;
}
于 2016-12-04T13:10:11.493 に答える
0

精度形式sprintfでも使用できます。.10

#include <stdio.h>
#include <string.h>

int main(void)
{   
    char source[] = "abcdefghijklmnopqrstuvwxyz";
    char dest[11];
    memset(dest, '\0', sizeof(dest));

    sprintf(dest, "%.10s", source);

    printf("%s", dest); // abcdefghij
    return 0;
}
于 2016-12-04T12:00:29.187 に答える
0

良い情報源を探している場合は、使用できるオンラインの man ページの例を次に示します: http://linux.die.net/man/3/strncpy

注意すべき重要事項: strncpy の代わりに memcpy を使用することもできますが、独自のヌル終了バイトを追加する必要があります。

警告: src の最初の n バイトに null バイトがない場合、dest に配置された文字列は null で終了しません。

したがって、ここでは memcpy と strncpy はほぼ同じように機能し、memcpy はより効率的で、エラーが発生しにくくなっています。

于 2013-05-02T22:12:08.697 に答える
0

私はそれをこのように動作させました。

   # include <stdio.h>
   # include <string.h>
   //Strings. String lenght terminator.
   //KHO2016.no1. mingw (TDM-GCC-32) . c-ansi .
   int main ()
   {
   //declare
   char src_str[20],dst_str[10];

   //valuate
   printf ("Enter a sentance of 20 letters\n");
   gets (src_str);
   strcpy (dst_str,src_str);

   //calculate
   dst_str [10] ='\0'; // from the "www.stack overflow"
   printf ("%s",dst_str);
   printf ("\n");

   //terminate
   return 0;
   }
于 2016-01-10T21:09:27.257 に答える