字符串中的内容逆置
字符串中的内容逆置
程序代码如下:
/*
2017年3月5日14:48:11
功能:把字符串的内容逆置
*/
#include"string.h"
#include "stdio.h"
#define N 81
void fun(char *s)
{
int i, n = strlen(s)-1; //strlen()是求字符串全部元素个数包括最后的'\0'(字符串结尾的字符),而strlen()-1表达式所求得是数组最大下标值
char t;
for (i = 0; i < n; i++, n--) //strlen()是求字符串的长度,注意区分它不是求数组的长度,即char型数组,不适用int型数组。
{
t = s[i];
s[i] = s[n];
s[n] = t;
}
}
int main ()
{
char a[N];
printf ("请输入一个字符串:\n");
gets (a); //当一次输入一个字符串时用gets()函数
fun(a);
printf ("修改后的字符串是: \n");
puts (a); //当一次输出一个字符串时用puts()函数
return 0;
}
/*
总结:
1、getchar ()函数的用处是输入单个字符
2、scanf ()函数的用处是输入整数型,浮点数型的数据
3、在VC++6.0中显示的结果:
————————————————————————
请输入一个字符串:
asdfghj
修改后的字符串是:
jhgfdsa
————————————————————————
*/
其他算法思想:
1、
/*
时间:2017年6月30日19:58:42
功能:将输入的字符串逆序输出
*/
# include <stdio.h>
# include <string.h>
int main(void)
{
char c, str[40]; //数组大小根据情况定义;
int i, lenght;
printf("Input string:");
gets(str);
lenght = strlen(str); //计算字符串的长度
for(i=0; i<lenght/2; i++) //计算出元素交换的次数
{
c = str[i]; //交换元素;
str[i] = str[lenght-i-1];
str[lenght-i-1] = c;
}
printf("Out string:");
puts(str);
return 0;
}
/*
在VC++6.0中显示的结果如下:
-----------------------------
Input string:ABCD.369
Out string:963.DCBA
-----------------------------
*/
2、
# include <stdio.h>
# include <string.h>
int main(void)
{
char str[69];
int i, lenght;
printf("Input string:");
gets(str);
lenght = strlen(str); //求出字符串的长度
printf("Out string:");
for(i=lenght-1; i>=0; i--) //从最后一项元素逆序输出;
{
printf("%c", str[i]);
}
putchar('\n');
return 0;
}
/*
在VC++6.0中显示的结果如下:
-----------------------------
Input string:ABCD.369
Out string:963.DCBA
-----------------------------
*/