C语言中如何截取字符串的前几个字符?

 我来答
籍寻桃希莱
2020-02-16 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:28%
帮助的人:840万
展开全部
自写的字符串截取程序,不懂可以继续问
系统里的截取前n个字符是strncpy
#include
#include
char
*mystrncpy(const
char
*string,int
n){//要求截取的字符串不可以改变,但指向字符串的指针可以改变

char
*p=string;

if(p==NULL){//如果截取的字符串是空的直接返回

return
NULL;

}else{

int
i=0;

while(*p!='\0'){//循环直到达n个字符串终止

if(i==n){

break;

}

i++;

p++;

}

*(p++)='\0';//赋值结束字符串

return
string;
}
}
int
main()
{

char
str[50]="hello
world";

printf("%s\n",mystrncpy(str,3));

printf("Hello
world!\n");

return
0;
}
蓝建白耿琪
2020-03-18 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:29%
帮助的人:808万
展开全部
用指针加循环方式,如使指针指向字符串的首字符,读取一个,指针向后移动一位,循环次数由需要读取的字符数确定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茹智敏烟乔
2020-01-18 · TA获得超过3.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:630万
展开全部
我是使用MFC写的,
希望对你有帮助

CString
str
=
"cut
out
Cstring";

CString
str1;
//保存需要截取后的字符串变量

str1
=
str.left(4);
//
获得截取字符串str左边字符的长度

Messagebox(str1);
//验证是否正确
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
檀伟彦禄晏
2020-02-20 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:31%
帮助的人:793万
展开全部
你将字符串a,b都事先初始化一遍。
应为你直接strncpy的,所以不能保证拷贝的字符串里面的结束符'\0'也被正常拷贝。
所以目标字符串b里面不一定有结束符。输出"%s"的时候就会把从b[0]开始的全部字符,直到遇见'\0'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牛角角打牛人1
2020-03-26 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:29%
帮助的人:766万
展开全部
方法没有错
问题在于
strncpy(b,a,6);
执行之后
没有在结尾处添加字符串结束标志
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式