各大外包公司软件测试工程师高频出现的一道C编程题
这道题目憋了好半天,才作出来.看来老不自己写程序.手生了.估计可能还有些问题,如果你阅读程序的时候发现了,请帮助改正.好吗?
字符串翻转:
例:原字符串 "I am a student." 转化为"student. a am I"
要求不能用库函数.
#include<stdio.h>
#include<string.h>
void main()
{
char a[20]={"I am a student."};
char b[20];//逆序后存储到b[20]中
int j;//j控制循环次数
int k=0,m=0,n;
int length=0;
int num=0;//串中子串的个数。
for(;a[length]!='/0';length++);//求出串的长度,用length来表示.
for(j=length-k-1;j>=0;j--)
{
if(a[j]!=' ')
k++;//k含义是求空格后有多少个字符。
else
{
n=j;
for(;k>=1;m++,n++,k--)
b[m]=a[n+1];
b[m]=' ';
m++;
}
}
for(;k>=1;m++,j++,k--)
b[m]=a[j+1];
//测试程序,用puts()函数输出.
b[m]='/0';
puts(b);
}