我想逆序输出一个字符串,可是出错了,,大家给看看
#include "stdafx.h"
#include <string.h>
char *StringTest(char *Sstring)
{
char *EndString = Sstring;
int len = strlen(Sstring)-2;
char temp;
int i = 0;
while (i<len)
{
temp = EndString[i];
EndString[i] = EndString[len];
EndString[len] = temp;
i++;
len--;
}
return EndString;
}
int _tmain(int argc, _TCHAR* argv[])
{
char *a = "abcd";
printf("%s\n",StringTest(a));
return 0;
}
#include "stdafx.h"
#include <string.h>
char *StringTest(char *Sstring)
{
char *EndString = Sstring;//其实没必要,他俩指向的内容一样,改这个,那个也变
int len = strlen(Sstring)-2;//应该是-1啊
char temp;
int i = 0;
while (i<len)
{
temp = EndString[i];
EndString[i] = EndString[len];
EndString[len] = temp;
i++;
len--;
}
return EndString;
}
int _tmain(int argc, _TCHAR* argv[])
{
char *a = "abcd";//用char a[] = "abcd";
printf("%s\n",StringTest(a));
return 0;
}
void Reverse(char *word) // 适合C风格字符串反转函数,只支持英文
{
// 来源 C++ Primer Plus 第五章 forstr2.cpp -- reversing an array
char temp;
size_t i, j; // 两个索引 变量i为末位,j为开始,从两头还是交换
for (j = 0, i = strlen(word) - 1; j < i; --i, ++j) { // 到中间位置就交换好了
temp = word[i];
word[i] = word[j];
word[j] = temp;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
char a[] = "abcd";
Reverse(a);
std::cout<<a;
return 0;
}