C语言中怎么提取一个字符串从第3个字母开始的其余的字符并保存到另一个字符串中

供稿:hz-xin.com     日期:2025-01-15
C语言 如何在字符串中提取连续字母生成新字符串输出?

用ascii代码啊、不难啊、

这样:
#include
#include
int main ()
{
void copystr(char *,char *,int);
int m;
char str1[20],str2[20];
printf("input string:");
gets(str1);
printf("which character that begin to copy?");
scanf("%d",&m);
if(strlen(str1) < m)
{
printf("input error!");
}
else
{
copystr(str1,str2,m);
printf("result:%s
",str2);
}
return 0;
}
void copystr(char *p1,char *p2,int m)
{
int n;
n = 0;
while(n < m - 1)
{
n++;
p1++;
}
while(*p1 != '\0')
{
*p2 = *p1;
p1++;
p2++;
}
*p2 = '\0';
}

扩展资料:注意事项
/*输入一个字符串,将该字符串中从第m个字符
开始的全部字符复制成另一个字符串。m由用户
输入,小于字符串的长度。*/
#include
#include
void mcopy(char array1[],char array2[],int m)
{
int i,j;
for(i=m-1,j=0;array2[j]!=0;i++,j++)
array1[i]=array2[j];
array1[i]=0;
}
int main()
{
char array1[20],array2[10];
int m;
printf("Give array1:");
gets(array1);
printf("Give array2:");
gets(array2);
printf("Give m:");
scanf("%d",&m);
mcopy(array1,array2,m);
printf("After changed:");
puts(array1);
return 0;
}

首先你这种定义字符串的方式是错误的
应该这样定义 char *x="abcdefg",这样定义就是定义了一个字符串变量,
而你的定义char x 只是定义x为字符变量,在赋值的时候只能赋给x单个字符,如x='a',
要搞清楚 字符 和 字符串 的概念
至于你说的提取字符,可如下方法
for(i=0; i<n; i++)//n是字符串变量y的字符个数
{
y[i]=x[i+3];
}
这样就可以了,就是简单的循环语句赋值,把x[]数组第三个字符‘d’(第0个字符时'a'),付给数组y[0].

首先定义有问题,char型变量只能这样定义:char x[10]= {'a','b','c','d','e','f','g'};如果一定要用你那种方式,那也只能:string x="abcdefg";
如果用第一种方式,可以这样写程序:
#include<stdio.h>
void main()
{
char x[10]= {'a','b','c','d','e','f','g'};
char y[10];
int i=2,j=0;
while(x[i]!='\0')
{
y[j]=x[i];
i++;
j++;
}
y[j]='\0';
j=0;
while(y[j]!='\0')
{
printf("%3c",y[j]);
j++;

}

char x[]="abcdefg";
char y[20]="";
strcpy(y,x+3);
printf("s%",y);

while(*str[i] == '\0')这里*str[i],不是这样用的啊..
只能str[i]==0

如何用C语言实现读取一个字符串的后几位?
\/\/已经在WIN-TC上验证。include <stdio.h> int main(){ char *strcut(char *,int);char str[]="abcdefg";printf("%s",strcut(str,3));getch();} char *strcut(char str[],int m){ int p=0;while(str[p++]) \/\/计算字符串STR的长度。{ } p-=1;if(m=0) \/\/验证m的...

c语言中如何在一个字符串中查找\/出现的位置?需要第一次出现和第二次出 ...
可以使用strstr()函数查找特定字符串在目标字符串中第一次出现的位置,然后用memcpy()函数截取字符串,再使用strstr()函数查找出现位置,两次结果指针之间的字符串就是特定字符之间的字符串,希望能帮到你~

C语言用函数输出英文字符串的第三个单词?
C语言中想要用函数输出英文字符串的第三个单词,只要先跳过字符串头上的两个单词后,再输出一个单词就可以了。以下是输出字符串中第n个单词的函数:void fun(char *p,int n){while(n-->1){while(*p!=' '&&*p!='\\t')p++;while(*p==' '||*p=='t')p++;} if(n==0)return;while(*p...

C语言输入一个字符串,然后分割成三个,规则入内
int main(){ char buf[];\/\/buf为你的带空格的字符串 char arr1[]; \/\/以下为分别用以存储的字符数组 char arr2[];...int i = 0;int counts = 1; \/\/循环计数 char*p =& buf[0]; \/\/读指针 while(*p!='\\0'){ if(' '==*p){ p++;continue;} else { switch(counts)...

我怎么样把一个字符串只截取到数字呢?比如1号,2号,3号,我怎么样截取成...
其实思路就是 取“1号,2号,3号”这个字符串的每一个字符去 匹配一个 数字的正则表达式如(@"^[1-9]\\d*$",当然这是一个匹配自然数的)只是举个例子, 如果你需要匹配其他数字 ,就要去找其他正则表达式 下面C#语言写的 如果你有VS 你可以直接进控制台应用程序调试 using System;using ...

如何从字符串中,提取特定的第几个字符
根据不同的语言环境 函数名有些不同 你可以百度一下字符串截取函数 比如delphi是copy()函数 C#可以用substring()java也可以用substring()

我想知道 vb 如何获取字符串中某个字符之后的所有字符
    怎么遍历提取字符串数组中包含的某个字符 字符串数组,可以 for(String s: sArr){ }  字符串有方法 indexOf  ~ 在excel中如何抽取字符串中的第假如需要抽取A1单元格的字符串  =MID(A1,5  其中5是代表第5个字符,1是代表抽取1个,假如1...

c语言吧一个字符串的每一个字符截取出来,并输出有什么办法吗??_百度...
includeint main(){ char s[200]; int i; scanf("%s",s); for(i=0; s[i]; i++) printf("第%d个字符是:%c\\n",i+1,s[i]); return 0;}

用c语言在一个字符串中查找另一个字符串,并统计个数
例如,asdfgasfgasf,as,则输出3。#include<stdio.h> #include<stdlib.h> intmain(){ charS[100],T[20];charch1,ch2;printf("请输入主字符串:\n");ch1=getchar();inti=0;while(ch1!='\n'){ S[i]=ch1;i++;ch1=getchar();} printf("请...

返回任意一个字符串前几个字符、后几个字符和中间几个字符。
用什么语言?算了,拿C给你写个算法吧。\/*从左边开始截取字符串 \/ char left(char dst,char src,int n,int m){ char p=src;char q=dst;int len=strlen(src);if(n>len)n=len;while(n--)(q++)=*(p++);(q++)='\\0';return dst;} \/ 从右边开始截取*\/ char right(char dst,...