1、二维字符数组每一行逆序输出。
#include<myhead.h>
#define N 5
int main(int argc,const char*argv[])
{
char a[N][20]={""};
char q;
int i;
printf("请输入字符串:");
for(i=0;i<N;i++)
{
gets(a[i]);
}
printf("目前的字符串:");
for(i=0;i<N;i++)
{
printf("%s\t",a[i]);
}
putchar(10);
for(i=0;i<N;i++)
{
for(int j=0;j<strlen(a[i])/2;j++)
{
q=a[i][j];
a[i][j]=a[i][strlen(a[i])-1-j];
a[i][strlen(a[i])-1-j]=q;
}
}
for(i=0;i<N;i++)
{
printf("%s\t",a[i]);
}
putchar(10);
return 0;
}
2、一维数组“qwertyuio” 查找出 yuio存在的位置是多少?输出其位置(模式匹配)。
#include<stdio.h>
#include<string.h>
void my_strstr(const char *arr,const char *brr)
{
int flag=0,n=0;
int x=0,y=0;
for(arr[0];*arr!='\0';arr++)
{
while(*brr!='\0'&&*arr==*brr)
{
arr++;
brr++;
n=n+1;
y++;
}
if(!*brr)
{
flag=1;
}
else
{
flag=0;
brr-=n;
n=0;
}
if(flag!=1)
{
y++;
}
else
{
x=y-n+1;
}
}
if(flag==1)
{
printf("包含\n");
printf("位置在%d到%d\n",x,y);
}
else
{
printf("不包含\n");
}
}
int main(int argc,const char *argv[])
{
char a[100]="";
char b[100]="";
int x=0,y=0;
printf("请输入一个字符串:");
gets(a);
printf("请输入一个字符串:");
gets(b);
my_strstr(a,b);
return 0;
}