C语言输入一串字符串从第n个字符开始截取m个字符组成一个新的字符串输出。

带主函数和自定义函数。

1、我们编辑如图中输入的代码。

2、进入源文件的目录下,在终端输入命令gcc -o t test.cpp。

3、输入./t命令,运行生成的可执行文件

4、运行结果为baidu。

5、strncpy 的函数原型char *strncpy(char *dest,char *src,size_t n),我们在复制src的前n个字符到dst中。

6、如果超过src的字符串长度,自动复制完全部的字符串 。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-24

#include <stdio.h>

#include <string.h>

int main()

{char s[300];

 int n,m;

 printf("Please enter a string:\n");

 gets(s);

 printf("n m =?");

 scanf("%d%d",&n,&m);

 if(n>strlen(s)||m<1)

   return 0;

 s[n+m-1]='\0';

 printf("%s\n",s+n-1);

return 0;

}

第2个回答  推荐于2017-11-25
#include<stdio.h>
char fun(char a[])
{
int k,l,i,j;
char b[80];
printf("你想截取的字符串从第几个开始?\n");
scanf("%d",&k);
printf("你想在第几个结束呢?\n");
scanf("%d",&l);
for(i=k-1,j=0;i<l;j++,i++)
{
b[j]=a[i];
}
b[j]='\0';
printf("截取结果是:");
puts(b);
}
int main()
{
char a[80];
printf("输入字符串:");
gets(a);
fun(a);
}
祝你愉快!追问

我试了一下,在puts(b);那里说错误, error C4716: 'fun' : must return a value。

追答

你在puts(b);后面加个return 0;应该就可以了。

本回答被提问者采纳
第3个回答  2013-06-18
#include<stdio.h>
#include<string.h>
#include<ctype.h>
void print(char s[],int n,int m)
{
    int k;
    int i;
    char *p;
    k=strlen(s);
    p = s;
    for(i=n-1;i<n-1+m;i++)//从第n-1位置开始,截取m个字符
        putchar(*(p+i));
    printf("\n");

}
void main()
{
    char *s,str[20];
    int m,n;
    printf("please input a string:\n");
    s = str;
    gets(s);
    printf("the string is:");
    puts(s);
    printf("please input n and m\n");
    scanf("%d%d",&n,&m);
    print(s,n,m);
}