#include <stdio.h>
#include <string.h>
struct data {char name[7];int age;} ab[5]={"张三",10,"李四",11,"张五",12,"李六",13,"陈七",14};
//编程将数组中所有姓张的年龄增加1,姓李的增加2,然后输出各个人的姓名与年龄
//中文字符串的 截取 比较
/*从字符串的左边截取n个字符*/
char * left(char *dst,char *src, int n)
{
char *p = src;
char *q = dst;
int len = strlen(src);
if(n>len) n = len;
while(n--) *(q++) = *(p++);
*(q++)='\0'; /*有必要吗?非常有必要*/
return dst;
}
/*从字符串的中间截取n个字符*/
char * mid(char *dst,char *src, int n,int m) /*n为长度,m为位置*/
{
char *p = src;
char *q = dst;
int len = strlen(src);
if(n>len) n = len-m; /*从第m个到最后*/
if(m<0) m=0; /*从第一个開始*/
if(m>len) return NULL;
p += m;
while(n--) *(q++) = *(p++);
*(q++)='\0'; /*有必要吗?非常有必要*/
return dst;
}
/*从字符串的右边截取n个字符*/
char * right(char *dst,char *src, int n)
{
char *p = src;
char *q = dst;
int len = strlen(src);
if(n>len) n = len;
p += (len-n); /*从右边第n个字符開始。到0结束,非常巧啊*/
while(*(q++) = *(p++));
return dst;
}
main()
{
char mb[5];
int i;
for(i=0;i<5;i++)
{
if(strcmp(left(mb,ab[i].name,2),"张")==0)
ab[i].age++;
else if(strcmp(left(mb,ab[i].name,2),"李")==0)
ab[i].age+=2;
printf("%s,%d\n",ab[i].name,ab[i].age);
}
getchar();
}