03、字符串中的内容逆置——字符串
字符串中的内容逆置
字符串中的内容逆置
程序代码如下:
/* 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 ----------------------------- */