#include <stdio.h>
#include <stdlib.h>
char *subs(char *s,int n,int m)
{
char *p
int i=0
p=s
while(*p++ != '\0') //NULL是void *型
{
i++
}
if(n<0||m<0||m<n||m>i)
{
printf("Substring invidal !\n")
exit (0)
}
p=s+n
*(p+m+1)='\0'//必须'\0',printf函数读到'\0'停止;
return(p)
}
int main(void)
{
char s1[]="The c programing language!"// char *常量
system("cls")
printf("%s\n",subs(s1,5,16))
}
定义为:char *p完整的程序如下:
#include<stdio.h>
#include<string.h>
void main()
{
int i
char a[30],ch
char *p//这里!这里!这里!这里!这里!这里!这里!这里!这里!这里!
gets(a)//输入带空格字符的字符串,赋予字符数组变量a
ch=getchar()//输入要查找的字符赋予字符变量b
p=strchr(a,ch)//查找字符位置函数
if(p!=NULL)
printf("在字符串%s中以字符%c开始的子串为%s.\n",a,ch,p)
else
printf("在字符串%s中没找到字符%c.\n",a,ch)
}