DAY7
一、思维导图
二、作业
1、输入一个字符串自行实现atoi函数(非函数实现)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char a[20];
gets(a);
int i=0;
while(a[i]==' ')
{
i++;
}
if(a[i]=='+'||a[i]=='-')
{
i++;
}
int j=i,sum=0;
while(a[j]!='\0')
{
if(a[j]>='0'&&a[j]<='9')
{
sum=sum*10+a[j]-48;
}else
{
break;
}
j++;
}
if(a[i-1]=='-')
{
sum=-sum;
}
printf("sum=%d\n",sum);
return 0;
}
运行结果
2、输入三个字符串计算最大值(字符串函数实现)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char a[20];
char b[20];
char c[20];
char string[20]="";
printf("输入第一个字符串:");
gets(a);
printf("输入第二个字符串:");
gets(b);
printf("输入第三个字符串:");
gets(c);
if(strcmp(a,b)>0&&strcmp(a,c)>0)
strcpy(string,a);
if(strcmp(b,a)>0&&strcmp(b,c)>0)
strcpy(string,b);
if(strcmp(c,a)>0&&strcmp(c,b)>0)
strcpy(string,c);
printf("三个字符串中最大的是:\n");
puts(string);
return 0;
}
运行结果
3、输入两个字符串,实现交换(字符串函数实现)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char a[20],b[20],c[20]="";
printf("输入两个字符串:\n");
gets(a);
gets(b);
c[20]=strcpy(c,a);
a[20]=strcpy(a,b);
b[20]=strcpy(b,c);
printf("交换后:");
puts(a);
puts(b);
return 0;
}
运行结果
4、输入两个字符串,实现字符串连接(非函数实现)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char a[20],b[20];
printf("输入两个字符串\n");
gets(a);
gets(b);
unsigned long count=0;
for(int i=0;a[i]!=0;i++)
{
count++;
}
for(int j=0;b[j]!=0;j++)
{
a[count]=b[j];
count++;
}
a[count]='\0';
printf("字符连接后:%s\n",a);
return 0;
}
运行结果
5、输入两个字符串实现字符串拷贝(非函数实现)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int a[20],b[20];
printf("请输入两个字符串:\n");
gets(a);
gets(b);
int i=0;
for(i;a[i]!='\0';i++)
{
a[i]=b[i];
}
a[i]='\0';
printf("拷贝后的字符变为:\n");
puts(a);
puts(b);
return 0;
}
运行结果
6、输入一个字符串实现字符串逆置
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
//h e l l o
//i j
char a[20];
gets(a);
int i=0,j=strlen(a)-1;
while(i<j)
{
char t=a[i];
a[i]=a[j];
a[j]=t;
i++;
j--;
}
puts(a);
return 0;
}
运行结果
7、输入-一个字符串,对每一一个字符实现简单选择排序
eg:
输入–> “aecbd”
输出–>“abcde”
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char a[20];
printf("输入一个字符串:");
gets(a);
int min,i,j;
for(int i=0;i<strlen(a)-1;i++)
{
min=i;
for(int j=i+1;j<strlen(a);j++)
{
if(a[min]>a[j])
min=j;
}
char t=a[min];
a[min]=a[i];
a[i]=t;
}
//printf("%ld",strlen(a));
puts(a);
return 0;
}
运行结果