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

    如果我们在一行代码的行尾放置一个反斜杠,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\n"); //Programing in c is fun
printf("Programming in c" " is fun\n"); // Programing in c is fun
printf("Programming" " in c" " is fun"\n);//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

c语言中字符串跨行书写的问题的更多相关文章

  1. Go语言中字符串的查找方法小结

    这篇文章主要介绍了Go语言中字符串的查找方法小结,示例的main函数都是导入strings包然后使用其中的方法,需要的朋友可以参考下   1.func Contains(s, substr strin ...

  2. C语言中字符串详解

    C语言中字符串详解 字符串时是C语言中非常重要的部分,我们从字符串的性质和字符串的创建.程序中字符串的输入输出和字符串的操作来对字符串进行详细的解析. 什么是字符串? C语言本身没有内置的字符串类型, ...

  3. C语言中字符串结束符'\0'

    转自:http://www.cnblogs.com/kaituorensheng/archive/2013/12/09/3464462.html 本质 '\0'就是8位的00000000,因为字符类型 ...

  4. c语言中字符串数组初始化的一点总结&& c++访问控制的三种方式

    char *c[]={"ONE","TWO","THREE","FOUR"}; // c语言中定义了一个字符串数组(也称 ...

  5. C语言中字符串存储方法

    众所周知,C语言中没有数据类型能够存储字符串, char数据类型仅仅能够存储一个字符的数据,那么在C语言中关于存储字符串这一难题我们改何去何从呢? 下面将详述相关的字符串存储方法; 1,使用字符数组存 ...

  6. C语言中字符串的格式化

    本文整理转载自:http://wenku.baidu.com/view/065d62fff705cc1755270989.html C语言中格式字符串的一般形式为: %[标志][输出最小宽度][.精度 ...

  7. C语言中字符串如何转换为二进制、八进制、十进制、十六进制

    在C语言某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串"0x1a"转换成10进制的26,可以用以下函数来实现 相关函数: atof, atoi, atol, st ...

  8. 【转】C语言中字符串输入的三种方法

    在网上看到,讲的还算详细,转过来学习一下...... ======================================================================= 使 ...

  9. C语言中字符串常量到底存在哪了?

    常量存储总结局部变量.静态局部变量.全局变量.全局静态变量.字符串常量以及动态申请的内存区 1.局部变量存储在栈中2.全局变量.静态变量(全局和局部静态变量)存储在静态存储区3.new申请的内存是在堆 ...

随机推荐

  1. vue 搜索关键词 变颜色

    <a class="text"> <span>{{item.name.slice(0,item.name.toLowerCase().indexOf(inp ...

  2. 【curl】cookie的分隔符

    cookie是以分号作为分隔符的. ex: curl --silent -H "Host: xxx.com" "172.172.178.9:80/item/comm?pi ...

  3. HDU 2147--HDU 2147(博弈)--我可能做了假题。。。

    kiki's game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 40000/1000 K (Java/Others) Total Su ...

  4. wannafly 练习赛10 E 数列查找(莫队+分块分块分块......)

    链接:https://www.nowcoder.net/acm/contest/58/E 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit ...

  5. 阿里知识储备之二——junit学习以及android单元测试

    一,junit框架 http://blog.csdn.net/afeilxc/article/details/6218908 详细见这篇博客 juit目前已经可以和maven项目进行集成和测试,而且貌 ...

  6. 利用spark将表中数据拆分

    i# coding:utf-8from pyspark.sql import SparkSession import os if __name__ == '__main__': os.environ[ ...

  7. 第四周总结 & 实验报告(二)

    第四周课程总结 一.String类 1.实例化 (1)直接赋值 public class Xxxx{ public static void main(String args[]){ String a ...

  8. 从三十而立的迷茫,到30K

    很标题党的标题,但是希望分享一下自己的经历,一份有点儿不寻常的经历. 12年创业,到17年末,举步维艰,没有项目,公司只剩下两个人,负债,现实给我这个每见过什么市面,却自命不凡的人狠狠的一个耳光.加上 ...

  9. python读取文件乱码

    方法一:使用codecs import codecs f = codecs.open('nlpir/Readme.txt','r','GBK') line = f.readline() while l ...

  10. EDM数据:如何选择邮件服务器平台

    博主知道有不少的企业和个人都在寻找邮件服务器平台,下面博主从下面几个方面给大家介绍一下如何选择. 一.列表管理功能是否完善. 一般一个好的邮件服务器平台系统都有完善的列表管理功能.列表管理功能是指邮件 ...