实现反转函数,即反转一个Null结尾的字符串

 1 #include <iostream>
 2 /*
 3 实现反转函数,即反转一个Null结尾的字符串
 4 注意:不分配额外的空间,直接就反转字符串,另外
 5 还要注意Null字符
 6 思路:
 7 1.先计算字符串的长度,计算的长度包含null,所以计算出来的数值应再减去1
 8 2.从字符串首尾开始交换两个字符,直到指针在中间碰头
 9 */
10
11 using namespace std;
12 void reverse(char *str)
13 {
14     char *end=str;
15     char tmp;
16     if(str)
17     {
18         while(*end)
19         {
20             ++end;
21         }
22         --end;
23        while(str<end)
24        {
25            tmp=*str;
26            *str++=*end;
27            *end--=tmp;
28        }
29     }
30 }
31
32 int main()
33 {
34     char s[]={‘a‘,‘b‘,‘c‘};
35     cout<<s<<endl;
36     reverse(s);
37     cout<<s<<endl;
38     return 0;
39 }
时间: 2024-11-15 06:27:34

实现反转函数,即反转一个Null结尾的字符串的相关文章

Python Cookbook(第3版)中文版:15.13 传递NULL结尾的字符串给C函数库

15.13 传递NULL结尾的字符串给C函数库? 问题? 你要写一个扩展模块,需要传递一个NULL结尾的字符串给C函数库.不过,你不是很确定怎样使用Python的Unicode字符串去实现它. 解决方案? 许多C函数库包含一些操作NULL结尾的字符串,被声明类型为 char * .考虑如下的C函数,我们用来做演示和测试用的: void print_chars(char *s) { while (*s) { printf("%2x ", (unsigned char) *s); s++;

列表反转函数

列表反转函数一: #!/user/bin/python # -*- coding: UTF-8 -*- def reverse(li): for i in range(0, len(li)/2): temp = li[i] li[i] = li[-i-1] li[-i-1] = temp l = [1, 2, 3, 4, 5] reverse(l) print(l) 列表反转函数二: def reverse(ListInput): RevList=[] for i in range (len(L

将一个字符串逆序,不要使用反转函数

String message = "he saw a racecar"; StringBuilder rev = new StringBuilder(); for(int i = message.length()-1; i >= 0; i--) rev.append(message.charAt(i)); System.out.println(rev.toString()); 将一个字符串逆序,不要使用反转函数

关于字符串反转和数组反转的问题

关于反转这个问题,在晚上查了些资料,有很多非常不错的思想,要熟练的掌握这些思想,现在把这些总结如下: 字符串反转: 1 import java.util.Stack; 2 3 public class StringInverse { 4 public static void main(String[] args) { 5 System.out.println(reverse7("abcde")); 6 } 7 //方式一 8 public static String reverse1(

修改ActiveReports验证文字“给不能为 null 的参数指定一个 null 值”

目前问题: 运行结果: QQ截图20140911171128.png(14.68 K) 2014-9-12 11:02:28 CODE 为王,直接奉上. $(document).ajaxSend(function (e, xhr, o) { // 截获RunReport请求 if (o.url.indexOf('/ActiveReports.ReportService.asmx/RunReport') > 0) { xhr.abort(); // 终止AR默认请求 $.ajax({ type:

[编程之美]写一个函数,返回一个数组中所有元素被第一个元素除的结果

题目: 写一个函数,返回一个数组中所有元素被第一个元素除的结果: 错误的版本: void DivArray(int *array, int n) { for (int i = 0; i < n; ++i) { array[i] /= array[0]; } } 错误原因:在循环的第一步,第一个元素就变成了1,然后再用它去除以其他元素,就不符合题目要求了 改进: 1:使用其他变量保存第一个元素: void DivArray3(int *array, int n) { assert(array !=

2018-07-10聚合函数+比较条件+&#39;&#39;和NULL+DISTINCT+ORDER BY+LIMIT+GROUP BY

''表示空字符串! NULL表示值未知! %表示任意个字符 _表示一个字符 COUNT(*)包括NULL值(会把所有列都统计一遍,取最大值)! COUNT(字段)不包括NULL值! SELECT * FROM PRODUCT //查询所有列,*表示所有列! SELECT PRO_NAME,PROTYPE_ID FROM PRODUCT //只查询其中两列! SELECT PRO_NAME AS 产品名称,PRICE AS 价格 FROM PRODUCT //用AS给字段添加别名! SELECT

一个函数只能返回一个值?笑话

函数的define:若有两个变量x和y,对于x的每一个值,y都有唯一确定的值与它对应,则y与x有函数关系.一般用表示.其中x叫做自变量,y叫做因变量. 唯一的值?对啊,C语言函数中也是只能return 一个的而已,虽然你能写多个return 到C语言的函数中,可是见到第一个return 后,后面的操作都是不执行的.读者可以试试!!那么,我们怎样从一个C语言函数中得到多个值呢?我们可以用些技术吧???对的,真的可以!!!①可以利用指针,指针里放着变量的地址,如果我们改变它的指向,不就可以改变它的值

Java-集合(没做出来)第四题 (List)写一个函数reverseList,该函数能够接受一个List,然后把该List 倒序排列。 例如: List list = new ArrayList(); list.add(“Hello”); list.add(“World”); list.add(“Learn”); //此时list 为Hello World Learn reverseL

没做出来 第四题 (List)写一个函数reverseList,该函数能够接受一个List,然后把该List 倒序排列. 例如: List list = new ArrayList(); list.add(“Hello”); list.add(“World”); list.add(“Learn”); //此时list 为Hello World Learn reverseList(list); //调用reverseList 方法之后,list 为Learn World Hello package