题1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main(int argc, const char *argv[])
{
//循环输入字符串(存在空格),对每个单词实现逆置
while(1)
{
char str[64]="";
printf("输入字符串(存在空格):\n");
gets(str);
int i,j,k;
i=j=k=0;
char t;
for(i=0;i<strlen(str);)
{
while(str[j]!=' ' && str[j]!='\0')
j++;
k=j-1;
while(i<k)
{
t=str[i];
str[i]=str[k];
str[k]=t;
i++;
k--;
}
for(;str[j]==' ';j++);
i=j;
}
printf("%s\n",str);
}
return 0;
}
题2
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main(int argc, const char *argv[])
{
//例如:
//字符串“this is my class”,计算字符串“is”的个数
//is有2个
char str[64]="";
char a[16]="";
printf("输入一段字符串:\n");
gets(str);
printf("输入想要查找的字符串:\n");
gets(a);
int count=0;
int i=0,j=0;
while(i<strlen(str)-strlen(a)+1)
{
while(j<strlen(a))
{
if(a[j]==str[i])
{
j++;
i++;
}
else
{
i++;
break;
}
}
if(j==strlen(a))
{
count++;
j=0;
}
}
printf("%s出现%d次\n",a,count);
return 0;
}