TEL:400-8793-956
当前位置:程序、服务器

将char数组移位N个点

提问者: 近期获赞: 浏览人数: 发布时间:2021-03-10 09:50:34

 问:我正在尝试将字符数组移动多个指定位置。

 
例如,如果n = 2,我想要我的数组“ Hello”。成为“ llo”。我尝试了以下方法:
 
memmove(array, array+2, sizeof array - sizeof *array);
但这是行不通的。如果:
 
char *array = "Hello."
我希望数组成为“ llo”。
 
任何帮助,将不胜感激。我不知道如何做这么简单的事情。
 
 
答:char *array = "Hello.";
那么该变量array实际上不是数组。它是指向包含文字字符串的常量数组的第一个元素的指针。
 
由于文字字符串是常量,因此无法对其进行修改,并且无论如何尝试都会导致未定义的行为。实际上,您的编译器应该已经对此发出警告(请听您的编译器,并将所有消息(甚至警告)视为必须修复的错误)。
 
正确的定义是
 
const char *pointer = "Hello.";
要解决您的问题,请使用实际的数组:
 
char array[] = "Hello.";
上一篇: 访问查询以对具有不同开始值和结束值的实例进行计数
下一篇: Laravel与其他where语句的关系