思维导图
作业
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;
int sum=0;
while(a[i]==' '){
i++;
}
if(a[i]=='+' || a[i]=='-')
i++;
int j=i;
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>
int main(int argc, const char *argv[]){
char s1[20],s2[20],s3[20];
gets(s1);
gets(s2);
gets(s3);
char s1s2=strcmp(s1,s2);
char s2s3=strcmp(s2,s3);
char s1s3=strcmp(s1,s3);
if(s1s2>0&&s1s3>0){
puts("s1最大\n");
}else if(s2s3>0&&s1s2<0){
puts("s2最大\n");
}else if(s1s3<0&&s2s3<0){
puts("s3最大\n");
}else{
puts("error!");
}
puts(s1);
return 0;
}
3.输入两个字符串,实现交换(字符串函数实现)
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[]){
char s1[20],s2[20],temp[20];
gets(s1);
gets(s2);
strcpy(temp,s1);
strcpy(s1,s2);
strcpy(s2,temp);
printf("s1=%s\n",s1);
printf("s2=%s\n",s2);
return 0;
}
4.输入两个字符串,实现字符串连接(非函数实现)
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[]){
char a[20],b[20];
gets(a);
gets(b);
int i=0;
while(a[i]!='\0'){
i++;
}
int j=0;
while(b[j]!='\0'){
a[i++]=b[j++];
}
a[i]='\0';
puts(a);
return 0;
}
5.输入两个字符串实现字符串拷贝(非函数实现)
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[]){
char a[20],b[20],temp[20];
gets(a);
gets(b);
int i=0;
for (i = 0 ; a[i]!='\0' ; i++){
a[i]=b[i];
}
a[i]='\n';
puts(a);
puts(b);
return 0;
}
6.输入一个字符串实现字符串逆置
#include <stdio.h>
int main(int argc, const char *argv[]){
char a[20],b[20],temp[20];
gets(a);
size_t len=0;
for (int i = 0; a[i]!='\0' ; i++) {
temp[i]=a[i];
len++;
}
temp[len]='\0';
puts(temp);
for (int i = 0; temp[i]!='\0' ; i++) {
a[i]=temp[len-i-1];
}
puts(a);
return 0;
}
7.输入一个字符串,对每一个字符实现简单选择排序
#include <stdio.h>
int main(int argc, const char *argv[]){
char a[20],b[20],temp[20];
gets(a);
size_t len=0;
for (int i = 0; a[i]!='\0' ; i++) {
temp[i]=a[i];
len++;
}
temp[len]='\0';
puts(temp);
for (int i = 0; temp[i]!='\0' ; i++) {
a[i]=temp[len-i-1];
}
puts(a);
return 0;
}