大家好,看一个字符串删除的有关问题
大家好,看一个字符串删除的问题
main()
{ char *delstring(char a[],int i,int j);
char s[50];
scanf( "%s ",s);
delstring(s,1,2);
printf( "%s ",s);
}
char *delstring(char a[],int i,int j)
{
char *p=a+i-1;
char *q=a+i+j-1;
if(*q!= '\n ')
{*p++=*q++;}
*p= '\n ';
return a;
}
输入:abcdefg
输出:c
cdefg
这是为什么呢?请高手指点!
------解决方案--------------------
小改一下可以基本满足你的要求
#include <stdio.h>
#include <stdlib.h>
void main()
{
char *delstring(char a[], int i, int j);
char s[50];
scanf( "%s ", s);
delstring(s, 2, 2);
printf( "%s ",s);
}
char *delstring(char a[], int i, int j)
{
char *p = a+i-1;
char *q = a+i+j-1;
while(*q != '\0 ')
*p++ = *q++;
*p= '\0 ';
return a;
}
main()
{ char *delstring(char a[],int i,int j);
char s[50];
scanf( "%s ",s);
delstring(s,1,2);
printf( "%s ",s);
}
char *delstring(char a[],int i,int j)
{
char *p=a+i-1;
char *q=a+i+j-1;
if(*q!= '\n ')
{*p++=*q++;}
*p= '\n ';
return a;
}
输入:abcdefg
输出:c
cdefg
这是为什么呢?请高手指点!
------解决方案--------------------
小改一下可以基本满足你的要求
#include <stdio.h>
#include <stdlib.h>
void main()
{
char *delstring(char a[], int i, int j);
char s[50];
scanf( "%s ", s);
delstring(s, 2, 2);
printf( "%s ",s);
}
char *delstring(char a[], int i, int j)
{
char *p = a+i-1;
char *q = a+i+j-1;
while(*q != '\0 ')
*p++ = *q++;
*p= '\0 ';
return a;
}