如何输入一个带有空格的字符串
scanf("%[ ^\n] ",s)
题目: 输入一个字符串,计算字符串中子串出现的次字数
/*****************************************************
> File name: Training43.c
> Author: Mr.miao
> 日期: 2019-01-29 10:11
*****************************************************/
#include <stdio.h>
#include <string.h>
int main()
{
char a[64]={'0'},b[64]={'0'},tem[64]={'0' };
int count=0;int i,j;
printf("Please enter a string and a substring\n");
scanf("%s %s",a,b);
for(i=0;i<strlen(a);i++)
{
for(j=0;j<strlen(b);j++)
{
tem[j]=a[i+j];
}
if(strcmp(tem,b)==0)
{
count++;
}
}
printf("%d\n",count);
return 0;
}
- 题目: 请编写一个C函数,该函数将一个字符串逆序
/*****************************************************
> File name: Training41.c
> Author: Mr.miao
> 日期: 2019-01-29 09:57
*****************************************************/
#include <stdio.h>
#include <string.h>
void nixu(char *p)
{
char b[32];int i;
// printf("%d",strlen(p));
for(i=0;i<strlen(p);i++)
{
b[i]=p[strlen(p)-1-i];
}
printf("%s\n",b);
}
int main()
{
char a[32];
printf("Please enter a string\n");
scanf("%s",a);
nixu(a);
return 0;
}
- 题目: 编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,即将句子中的单词位置倒置,而不改变单词内部结构
/*****************************************************
> File name: Training44.c
> Author: Mr.miao
> 日期: 2019-01-29 11:03
*****************************************************/
#include <stdio.h>
#include <string.h>
void daoxu(char *p)
{
char b[32]={'0'};
int i,j,k,z=0;
j=strlen(p);
for(i=strlen(p);i>=0;i--)
{
if(p[i]==' ')
{
for(k=i+1;k<j;k++)
{
b[z]=p[k];
z++;
}
b[z]=' ';z++;
j=i;
}
}
i=0;
while(p[i]!=' ')
{
b[z]=p[i];
i++;z++;
}
printf("%s\n",b);
}
int main()
{
char a[32];
printf("Please enter a string\n");
scanf("%[^\n]",a);
// printf("%s\n",a);
daoxu(a);
return 0;
}
在字符串指定位置插入字符串
/*****************************************************
> File name: kejian5.c
> Author: Mr.miao
> 日期: 2019-01-29 08:58
*****************************************************/
#include <stdio.h>
#include <string.h>
int main()
{
char aa[32]={0}; char bb[32]={0};
int i,num;
printf("Please ernter a string\n");
scanf("%s",aa);
printf("Pleae enter the string to be inserted,and enter a num\n");
scanf("%s%d",bb,&num);
/* for(i=strlen(aa)-1;i>=num-1;i--)
{
aa[i+strlen(bb)]=aa[i];
}*/
for (i=0;i<strlen(aa)-num+1;i++)
{
aa[strlen(aa)-1+strlen(bb)-i] = aa[strlen(aa)-1-i];
}
for(i=0;i<strlen(bb);i++)
{
aa[i+num-1]=bb[i];
}
printf("%s\n",aa);
return 0;
}
几个字符串求出最小串
/*****************************************************
> File name: kejian6.c
> Author: Mr.miao
> 日期: 2019-01-29 09:33
*****************************************************/
#include <stdio.h>
#include <string.h>
int main()
{
char a[32];char b[32]; char c[32];
printf("Please enter three string\n");
scanf("%s %s %c",a,b,c);
// printf("%s\n%s\n",a,b);
if(strcmp(a,b)<0 && strcmp(a,c)<0)
{
printf("a is min\n");
}
else if (strcmp(b,a)<0 && strcmp(b,c)<0 )
{
printf("b is min\n");
}
else if (strcmp(c,a)<0 && strcmp(c,b)<0)
{
printf("c is min");
}
else printf("three strings equal ");
return 0;
}