1、字符串逆置
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc ,const char *argv[])
{
char str[10]="";
gets(str);
int i=0,j=strlen(str)-1;
while(i<j)
{
char t=str[i];
str[i]=str[j];
str[j]=t;
i++;j--;
}
puts(str);
return 0;
}
编译有警告不用管
2、单词逆置
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc ,const char *argv[])
{
char str[100]="";
gets(str);
int i=0,j=strlen(str)-1;
while(i<j)
{
char t=str[i];str[i]=str[j];str[j]=t;
i++;j--;
}
i=j=0;
while(str[i]!='\0')
{
while(str[j]!=' '&&str[j]!='\0')
{
j++;
}
int k=j-1;
while(i<k)
{
char t=str[i];str[i]=str[k];str[k]=t;
i++;k--;
}
while(str[j]==' ')
{
j++;
}
i=j;
}
puts(str);
return 0;
}
3、非函数计算字符串长度(strlen功能)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc ,const char *argv[])
{
char str[100]="";
gets(str);
int i;
for(i=0;str[i]!='\0';i++);
printf("i=%d\n",i);
return 0;
}
4、非函数实现字符串拷贝(strcpy功能)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc ,const char *argv[])
{
char dest[10]="hello";
char str[]="123";
int i;
for(i=0;str[i]!='\0';i++)
{
dest[i]=str[i];
}
dest[i]='\0';
puts(dest);
return 0;
}
5、非函数实现字符串连接(strcat功能)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc ,const char *argv[])
{
char dest[20]="hello";
char src[]="123";
int i,j;
for(i=0;dest[i]!='\0';i++);
for(j=0;src[j]!='\0';j++)
{
dest[i+j]=src[j];
}
dest[i+j]='\0';
puts(dest);
return 0;
}
6、非函数实现字符串比较(strcmp功能)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc ,const char *argv[])
{
char str1[20]="hello";
char str2[20]="hello";
int i=0;
while (str1[i]==str2[i])
{
if(str1[i]=='\0')
break;
i++;
}
if(str1[i]-str2[i]>0)
puts("str1>str2");
else if(str1[i]-str2[i]<0)
puts("str1<str2");
else
puts("str1=str2");
return 0;
}
7、非函数实现atoi函数功能
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc ,const char *argv[])
{
char str[100];
gets(str);
printf("atoi=%d\n",atoi(str));
int i=0,sum=0;
while(str[i]==' ')
{
i++;
}
int j=i;
if(str[i]=='+'||str[i]=='-')
i++;
while(str[i]!='\0')
{
if(str[i]>='0'&&str[i]<='9')
{
sum=sum*10+(str[i]-'0');
}
else break;
i++;
}
if(str[j]=='-')
sum=-sum;
printf("sum=%d\n",sum);
return 0;
}