1.实现atoi函数功能,将输入字符串转换成数字(输入可能包含非数字字符)
include <stdio.h>
int main(int argc,const char *argv[])
{
char a[100]="";
int i = 0;
int sum = 0;
scanf("%s",a);
while(a[i] != '\0')
{
if(a[i] >= '0' && a[i] <= '9'){
sum = sum*10+ a[i] - '0';
}
i++;
}
printf("%d\n",sum);
}
![](https://img-blog.csdnimg.cn/cb81fa91a75d46eba0a16e9f1b9b29da.png)
2.初始化两个字符串,使用非函数实现字符串的比较
#include <stdio.h>
int main(int argc,const char *argv[])
{
int i = 0;
char a[20];
char b[20];
int s = 0;
printf("请输入第一组字符串");
scanf("%s",a);
printf("请输入第二组字符串");
scanf("%s",b);
while(a[i] == b[i])
{
if(a[i] == '\0')
break;
i++;
}
s = a[i] - b[i];
if(s > 0){
printf("a大于b\n");
}
else if(s < 0){
printf("a小于b\n");
}
else
printf("a等于b\n");
}
![](https://img-blog.csdnimg.cn/81e96b78b0394aa2b614d2b188d8cf6b.png)
3.不使用函数实现strcat
#include <stdio.h>
int main(int argc,const char *argv[])
{
int i = 0;
int j = 0;
char a[50];
char b[20];
int s = 0;
printf("请输入第一组字符串");
gets(a);
printf("请输入第二组字符串");
gets(b);
while(a[i] != '\0')
{
i++;
}
while(b[j]!= '\0')
{
a[i] = b[j];
j++;
i++;
}
a[i] = '\0';
printf("%s",a);
}
![](https://img-blog.csdnimg.cn/3f01b50413054dd6b70c3eca207cb9ef.png)
4.输入两个字符串实现交换strcpy
#include <stdio.h>
#include <string.h>
int main(int argc,const char *argv[])
{
int i = 0;
int j = 0;
char a[50];
char b[20];
char t;
int s = 0;
printf("请输入第一组字符串");
gets(a);
printf("请输入第二组字符串");
gets(b);
int m = strlen(a);
int n = strlen(b);
if(m > n){
while(a[i] != '\0')
{
t = b[i];
b[i] = a[i];
a[i] = t;
i++;
}
b[i] = '\0';
}
else
{
i = 0;
while(b[i] != '\0')
{
t = b[i];
b[i] = a[i];
a[i] = t;
i++;
}
a[i] = '\0';
}
printf("a=%s\n",a);
printf("b=%s\n",b);
return 0;
}
![](https://img-blog.csdnimg.cn/e6942d1b2e0346f7b2eca080bb7ed175.png)