zoukankan      html  css  js  c++  java
  • c语言中字符串跨行书写的问题

    字符串常量定义时的换行问题

        如果我们在一行代码的行尾放置一个反斜杠,c语言编译器会忽略行尾的换行符,而把下一行的内容也算作是本行的内容。这里反斜杠起到了续行的作用。
        
        如果我们不使用反斜杠,当我们试图初始化一个跨多行的字符串是,c语言编译器就会发出警告。如下面的语句所示:
    char letters[] = {"abcdefghijklmnopqrstuvwxyz
      ABCDEFGHIJKLMNOPQRSTUVWXYZ"};
          但是我们在行尾使用反斜杠, 那么就可以吧字符串常量跨行书写, 如下所示:
          char letters[] = {"abcdefghijklmnopqrstuvwxyz
    ABCDEFGHIJKLMNOPQRSTUVWXYZ"};
        从续行的开始输入字符串,可以避免在整个字符串中加入多于的空格。综上所述,上面的语句定义了一个字符数组letters,
    并将其初始化为如下的初值:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
      
       c语言中还有一种拆分字符串的方法,那就是将其写个多个相邻的字符串。这些字符串之间用0个或者多个空白、制作符以及换行符隔开。c语言编译器会自动将这些字符串连接起来。因此,下面的表达式:"one"  "two" "three" 实际上相当于 "onetwothree".
    因此前面跨行的初始化语句也可以用下面的形式完成:
    char letters[] = {"abcdefghijklmnopqrstuvwxyz"
                                "ABCDEFGHIJKLMNOPQRSTUVWXYZ"}
    下面给出一个例子,下面的三条printf语句实际上都只接受了参数,
    printf("Programing in c is fun "); //Programing in c is fun
    printf("Programming in c" " is fun "); // Programing in c is fun
    printf("Programming" " in c" " is fun" );//Programing in c is fun
     
    需要明白的是:c语言字符串的这个功能是从shell中借鉴过来的,因此,对于shell命令行来说,书写shell脚本时候,以下两种命令执行结果是等效的:
     
    root@3me:/etc# pwd
    /etc
    root@3me:/etc# pw
    > d
    /etc
    root@3me:/etc# 

    转载:http://blog.csdn.net/pachonghanya/article/details/6972632

  • 相关阅读:
    PB数据窗口分页
    Oracle创建视图权限不足
    PB计算两个日期相差月份(计算工龄)
    oracle笔记之计算年龄、工龄和TRUNC
    oracle随笔之提示“ORA-01002: 提取违反顺序”
    PB笔记之调用数据窗口时的过滤条件添加方式
    Oracle随笔之用拆分后的列数据关联表查询
    四种布局
    Android控件常见属性
    Activity启动活动最佳写法
  • 原文地址:https://www.cnblogs.com/3me-linux/p/4083575.html
Copyright © 2011-2022 走看看