下面是一个简单的C语言函数,该函数将字符串s中的字符顺序颠倒过来。
这里函数使用了字符长度这个参数length,这样能够简单一点。另外,也可以使用库函数计算字符串的长度。
// reverse chars in a line
// length is the length of a string s[]
void reverse(char s[], int length)
{
int i;
int middle; //the position of the middle element
//or the 0.5 position before the middle element
char tmp;
if(s[length -1] == '\n')
--length;
middle = length / 2;
--length;
for(i = 0; i < middle; ++i) {
tmp = s[i];
s[i] = s[length - i];
s[length - i] = tmp;
}
}
其实字符串本身已经包括了字符串长度,因此对这个程序再进行必要的修改,修改后如下所示。
// reverse chars in a line
void reverse(char s[], int length)
{
int i, k length;
int middle; //the position of the middle element
//or the 0.5 position before the middle element
char tmp;
k = 0;
while (s[k] != '\0')
++k;
length = k;
if(s[length -1] == '\n')
--length; /* leave newline in place */
middle = length / 2;
k = --length;
for(i = 0; i < middle; ++i) {
tmp = s[i];
s[i] = s[k - i];
s[k - i] = tmp;
}
}
阅读(5968) | 评论(0) | 转发(0) |