一、不用strlen实现此函数功能,数组下标从0开始
例一:
#include<stdio.h>
#include<string.h>
int main()
{
intn,i=0;
chara[n];
scanf("%s",a);
while(a[i]!='\0')
i++;
printf("%d",i);
}
运行结果:
abcde
5
例二:
#include<stdio.h>
#include<string.h>
int main()
{
intn,i=1;
chara[n];
scanf("%s",a);
while(a[i-1]!='\0')
i++;
printf("%d",i-1);
}
运行结果:
happy
5
二、不用strcpy实现该功能
#include<stdio.h>
int main()
{
chara[400]={'a','b','c','d'};
charb[4000];
inti=0;
while(a[i]!='\0')
{
b[i]=a[i];
printf("%c",b[i]);
i++;
}
}
运行结果:abcd
三、选择排序冒泡排序
选择:第一个数和后面所有数比,最小的放前面
下一次第二个和后面所有比
for
四、gets,puts运用
#include<stdio.h>
#include<string.h>
int main()
{
inti;
chara[3][20];
for(i=0;i<3;i++)
{
gets(a[i]);
puts(a[i]);
}
}
运行结果:
abcd
abcd
efghcd
efghcd
wenwanwan
wenwanwan
五、将最大字符串放入str中
#include<stdio.h>
#include<string.h>
int main()
{
inti;
chara[3][20];
for(i=0;i<3;i++)
{
gets(a[i]);
puts(a[i]);
}
charstr[20];
strcmp(a[0],a[1]);
if(strcmp>0)
strcpy(str,a[1]);
else
strcpy(str,a[0]);
strcmp(str,a[2]);
if(strcmp>0)
strcpy(str,a[2]);
else
strcpy(str,str);
printf("%s",str);
}
运行结果:
abcd
abcd
efghcd
efghcd
wenwanwan
wenwanwan
wenwanwan
六、函数调用(2.c)
七、关于return
#include<stdio.h>
int main()
{
inta=1;
f1(a);
printf("%d",f1(a));
}
int f1(x)
{
x++;
return x;
}
运行结果:2
若没有return x;则结果为1.
八、址传递 *:取值符,后加地址
#include<stdio.h>
intmain()
{
int a=0;
printf("%d\t",&a);
f1(&a);
printf("%d\t",f1());
printf("%d",a);
}
intf1(int a)
{
return a++; /*此处++为地址上的加1,而不是值上的加1*/
}
运行结果:-1077560368 -1077560367 0
九、运算符
单目:++,--
双目:+,-,*,\,>,<
三目:a<b?a:b(输出小的值)
#include<stdio.h>
intmain()
{
int a,b,t;
scanf("%d,%d",&a,&b);
t=a<b?a:b;
printf("%d",t);
}
运行结果:
8,9
8
十、在字符串数组指定位置插入字符
#include<stdio.h>
intmain()
{
char a[100]={"abcdfgh"};
int i;
for(i=7;i>3;i--)
{
a[i]=a[i-1];
}
a[4]='e';
for(i=0;i<100;i++)
printf("%c",a[i]);
}
运行结果:abcdefgh
在字符串数组指定位置插入字符串
最大公约数、最小公倍数、辗转相除法
串函数程序:strins,strcpy,strlen,strmax,gs,sort,triple