c语言——用指针解决字符串问题——输出一个字符串的子串

题目描述设计函数功能是输出一个字符串的子串,函数声明:voidsubString(char*p,intstart,intlen),start表示子串开始字符序号(从0计数... 题目描述
设计函数功能是输出一个字符串的子串,函数声明:void subString(char *p, int start, int len),start表示子串开始字符序号(从0计数),len表示所取子串的长度。
使用这个函数完成输出一个字符串的子串。

输入样例:

qwertyuiop
3 4

输出样例:
rtyu
展开
 我来答
ldw_xc007
2015-03-27 · TA获得超过458个赞
知道小有建树答主
回答量:340
采纳率:0%
帮助的人:261万
展开全部
#include "stdio.h"
#include "malloc.h"
#include "stdlib.h"


void subString(char *p, int start, int len);
void substring(char *p,int start, int len)
{
int i;
printf("取出的子串是:");
for(i = start; i < start + len; i++ )
printf("%c",*( p + i));
printf("\n");
}
int main()
{
int n, i = 0,start,len;
printf("请输入字符的个数:n,起始位:start,子串长度:n\n");
scanf("%d%d%d",&n,&start,&len);
printf("n = %d, start = %d, len = %d\n",n,start,len);
printf("请输入字符串:");
char *pstr = (char *)malloc(sizeof(char)*(n + 1));
if( NULL == pstr)
{
printf("内存分配失败\b");
exit(-1);
}
else
{
for( i = 0; i <= n; i++ )
*(pstr + i) = getchar();
*(pstr + i) = '\0';
}

printf("\n");

if(start > n || len > n)
printf("输入参数不合适\n");
else
{
substring(pstr,start,len);
}

return 0;

}


追问
不是分两次输入,是一次
追答
那也很简单
chmwh1992
2015-03-26 · TA获得超过1126个赞
知道小有建树答主
回答量:475
采纳率:100%
帮助的人:545万
展开全部
void subString(char *p, int start, int len)

{

 char *q=p+start;

 q[len]='\0';

 printf("%s\n",q);

}
追问
整个程序,劳烦
追答
#include<stdio.h>

#include<string.h>

void subString(char *p, int start, int len)

{

 char ch,*q=p+start;

 if(start+len<strlen(p))

 {//考虑到参数len大于原字符串长度

  ch=q[len];

  q[len]='\0';//字符串的结束标志

 }

 printf("字符串的子串是:%s\n",q);

 q[len]=ch;//还原原字符串中的字符

}

int main()



 char s[50];

 int start,len;

 printf("请输入一个字符串:\n");

 scanf("%s",s);

 printf("输入开始位置start和截取长度len:");

 scanf("%d%d",&start,&len);

 subString(s,start,len);

 return 0;

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式