char

C++ printf string.c_str() char[]

烈酒焚心 提交于 2020-03-01 14:00:59
以下代码错误,不能直接printf string。 int main ( ) { std :: string str1 = "test abc" ; printf ( "%s" , str1 ) ; } 正确代码应为: int main ( ) { std :: string str1 = "test abc" ; printf ( "%s" , str1 . c_str ( ) ) ; } printf输出字符串是针对char*或char[]的。即printf只能输出C语言中的内置数据,string不是c语言内置数据。 以上代码中str1是string类型的对象,并非单单只有字符串,其内还有许多用于操作的函数,于是&str1并非字符串“test abc”的首地址,而是str1这个对象的首地址。 但string类型的数据可以用cout直接输出: int main ( ) { std :: string str1 = "This is string." ; cout << str1 << endl ; } 对于char[]或char*定义的字符串可以直接printf。 如下代码正确: int main ( ) { char str1 [ ] = "123456" ; const char * str2 = "test" ; printf ( "%s\n" , str1 ) ;

先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列

假装没事ソ 提交于 2020-03-01 13:54:02
题目: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1291 以前的一个题,贴下代码; 1 #include<stdio.h> 2 #include<string.h> 3 char ans[100]; 4 5 void build(int n, char *s1, char *s2, char *s) 6 { 7 if(n <= 0) return; 8 int p = strchr(s2, s1[0])-s2; 9 build(p, s1+1, s2, s); 10 build(n-p-1, s1+p+1, s2+p+1, s+p); 11 s[n-1]=s1[0];//将根节点添加到最后 12 }; 13 14 int main() 15 { 16 int k,t; 17 char s1[100], s2[100]; 18 gets(s1); 19 gets(s2); 20 k=strlen(s1); 21 build(k, s1, s2,ans); 22 printf("%s\n",ans); 23 return 0; 24 } 来源: https://www.cnblogs.com/bfshm/p/3166010.html

g++功能还是很强大的

风流意气都作罢 提交于 2020-03-01 13:51:16
#include <iostream> using namespace std; int fuc(char *a) { cout << a << endl; } int main() { fuc("hello"); } inux 环境下当 GCC 版本比较高时,编译代码可能出现的问题 问题是这样产生的,先看这个函数原型: 1 void someFunc( char *someStr); 再看这个函数调用: 1 someFunc( "I'm a string!" ); 把这两个东西组合起来,用最新的g++编译一下就会得到标题中的警告。 为什么呢?原来 char *背后的含义是:给我个字符串,我要 修改 它。 而理论上,我们 传给函数的字面常量是没法被修改的 。 所以说,比较和理的办法是 把参数类型修改为 const char *。 这个类型说背后的含义是: 给我个字符串,我只要读取它。 来源: oschina 链接: https://my.oschina.net/u/128542/blog/500214

通过libzdb连接数据库

谁都会走 提交于 2020-03-01 13:38:40
一.引用博客一些用法介绍: Libzdb挺强大, 支持 MySQL Oracle SQLite PostgreSQL,支持C和C++ Object C,不能在Window下用(看源码是因为基于Linux线程机制编写实现)。 遗憾的是找个资料太费劲,只能到Libzdb官网: 点此进入 ,今正看着上面英文文档,突然网站就登不进去了,才发现国内论坛其实搜不出什么资料。 本文主要介绍Libzdb函数使用,帮理解英文文档有困难的朋友做下翻译。 库结构如下 : 首先下载libzdb的源码安装包,解压,在目录下执行./configure make make install 安装。。以我自己为例,装完后再/usr/local/lib下有对应库文件。 1 线程池根据URL对象创建,URL对象通过char* 形式的URL生成,url中已经包含数据库类型,数据库名 用户密码等参数。形如: database://[user:password@][host][:port]/database[?propertyName1][=propertyValue1] MYSQL访问: mysql://localhost:3306/test?user=root&password=swordfish mysql://root:swordfish @localhost :3306/test ORACLE访问: oracle:

C语言指针用法详解(二) 指针的算术运算

…衆ロ難τιáo~ 提交于 2020-03-01 12:24:00
例题1: Question : char a[20]; int *ptr = (int * )a; ptr++ Practice : Reason : #include <bits/stdc++.h> using namespace std; int main() { char a[20]; int *ptr = (int * )a;/// 强制类型转换不会改变a的类型 /*** ** 吾日三醒指针:指针的类型,指针指向的类型,指针指向哪里 ** ptr 的类型是 int* , 指向的类型是 int , 指向整形变量 a ***/ cout<<" befor : " << ptr<<endl; ptr++; cout<< " sizeof (ptr) "<< sizeof(ptr)<<endl; /*** ** ptr 类型是指针,指针的自增,当然是增加自身的大小了 ** sizeof(ptr) 为4, ptr 增加4 ***/ cout<<" after : "<<ptr<<endl; } 例题2: Question : int arr[20] = {0}; int *ptr = arr; for (int i=0; i<20; i++) { (*ptr)++; ptr++; } Practice : Reason : #include <bits/stdc++.h> using

Java 输出全部希腊字母

不打扰是莪最后的温柔 提交于 2020-03-01 09:39:51
public class xlzm { public static void main ( String args [ ] ) { char firstL = 'α' , lastL = 'ω' ; int First = ( char ) firstL , Last = ( char ) lastL ; for ( int i = First ; i <= Last ; i ++ ) { System . out . println ( " " + char ( i ) ) ; } } } 来源: CSDN 作者: Mustang___ 链接: https://blog.csdn.net/Pan_ZC/article/details/104571197

Java方法篇——String方法

╄→尐↘猪︶ㄣ 提交于 2020-03-01 09:35:06
1. 简述 String类中的方法需要熟练掌握,熟知各个方法的用途与用法,由于方法数量过多,为了方便记忆将分门别类的介绍方法,希望能熟练的掌握以下方法。 2. 获取方法 //获取字符串长度 int length ( ) ; //获取String字符串中指定下标位置的char类型字符 //如果index超出有效范围则抛出异常:StringIndexOutOfBoundsException char charAt ( int index ) ; //以下这些方法都是获取指定元素所在的下标位置 //元素可以是char类型字符,也可以是字符串。 //这里找出的是指定元素在字符串中最后一次出现的位置 //当然可以通过一定的约束,从哪个位置开始找fromIndex int indexOf ( char ch ) ; int indexOf ( String str ) ; int indexOf ( char ch , int fromIndex ) ; int indexOf ( String str , int fromIndex ) ; 2. 判断方法 //判断当前字符串是不是以指定字符串结尾 boolean endsWith ( String str ) ; //判断字符串是否为空 ""空串 JDK1.6之后 null不能读取,不能写入,不能调用方法 boolean isEmpty (

第二十九天

ⅰ亾dé卋堺 提交于 2020-03-01 09:23:21
字符数组和字符指针不是一回事 1字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串第一个字符的地址),决不是将字符串放到字符指针变量中。 2赋值方法不同,对字符数组只能对各个元素赋值,不能用以下办法对字符数组赋值。 char str[20]; str=“miao”; 字符指针变量,可以采用下面方法赋值 char *; a=“miao”; 但注意赋给a的不是字符,而是字符串第一个元素的地址 3对字符指针变量赋初值 * char a=“miao”; = char *a; a=“miao”; 而对数组的初始化 char str[20]={“miao”}; 不能等价于 char str[20]; str[]=“miao”; 4如果定义了一个字符数组,在编译时为它分配内存单元,他有确定的地址,而定义一个字符指针变量时,给指针变量分配内存单元,在其中可以放一个字符变量的地址也就是说,该指针变量可以指向一个字符型数据,但如果未对它赋予一个地址值,则它并未具体指向一个确定的字符数据 5指针变量的值是可以改变的,若定义一个指针变量,并使它指向一个字符串,就可以用下标形式引用指针变量所指的字符串中的字符 用函数指针变量调用函数 可以用指针变量指向整形变量,字符串,数组,也可以指向一个函数,一个函数在编译时被分配给一个入口地址,这个函数的入口地址就称为函数的指针。

课后作业之字串加密

好久不见. 提交于 2020-03-01 08:39:09
设计思路:首先输入一个字符串,然后定义一个字符数组,根据原文与密码关系,循环遍历字符串并且加三,最后将字符数组转为字符串, 并输出。 程序流程图: 源代码: 1 import java.util.Scanner; 2 public class Kasa{ 3 public static void main(String[] args){ 4 Scanner sc = new Scanner(System.in); 5 System.out.println("请输入要传递的信息: "); 6 String str=sc.nextLine(); 7 char[] c1=new char[str.length()]; 8 for(int i=0;i<str.length();i++){ 9 c1[i]=(char) (str.charAt(i)+3); 10 } 11 String s=new String(c1); 12 System.out.println("翻译后的信息为:"+ s); 13 14 15 16 17 18 } 19 } 结果截图: 来源: https://www.cnblogs.com/lwq666/p/7739505.html

error C2664 不能将参数 1 从“const char [16]”转换为“LPCTSTR

白昼怎懂夜的黑 提交于 2020-03-01 07:46:35
CImage CImg; CImg.Load(_T("C:\\char-aum.png")); 加载图片的时候绝对路径的前面需要添加转义字符\,保证地址信息正确 error C2664:不能将参数 1 从“const char [16]”转换为“LPCTSTR” 用vs2005编写mfc程序的时候经常要MessageBox("提示信息")函数,在vc6.0是没有问题的,但是在vs2005却会有下面的提示: error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR”。这个错误提示的原因是VS2005默认使用的是UNICODE字符集,在参数转换时会出错,解决方法很简单。 方法一:MessageBox(_T("你已经提交成功。")); 即在参数前加上_T 来源: oschina 链接: https://my.oschina.net/u/1582989/blog/280478