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

来源:百度知道 编辑:UC知道 时间:2024/05/29 21:01:48
比如:char x = abcdefg
我要提取c后面其他的字母并保存到字符串型变量y中
谢谢各位,那个问题我弄清楚了。
char *str[20];
int i=0;
scanf("%s",&str);
while(*str[i] == '\0'){
printf("%c",str[i]);
i++;
}
这个什么地方出问题了,怎么把我输入的字符串显示出来
也就是说我需要知道这个字符串长度 不是用for来显示 谢谢了
下面说的不成啊,关系到指针后移吧

while(*str[i] == '\0')这里*str[i],不是这样用的啊..
只能str[i]==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++