用printf輸出string型別資料總結
#include <string.h>
using namespace std;
int main()
{
string a;
a[0]='a';
a[1]='/0';
printf("%s/n",a);
system("pause");
}
出錯: [Warning] cannot pass objects of non-POD type `struct std::string' through `...'; call will abort at runtime
printf只能輸出C語言內建的資料,而string不是內建的,只是一個擴充套件的類,這樣肯定是連結錯誤的。
printf輸出string型別應如此操作!
#include<iostream>
#include<string>
using namespace std;
void main()
{
string aa="qqq";
printf("%s",aa.c_str()); //把 string類 的物件裡的字串 轉換成 C 中 char 型變數的字串,c_str() 以 char* 形式傳回 string 內含 //字串
//或者cout<<a;
}
用字元陣列來輸入輸出
char * a="abdcd";
scanf("%s",a);
printf("%s\n",a);
int
main()
{
char
ch[5];
scanf
(
"%s", ch); //無需&
printf
(
"%s"
, ch);
system
(
"pause"
);
return
0;
}
或用get函式,見上一篇部落格
注,關於 c_str()
const char *c_str();
c_str()函式返回一個指向正規C字串的指標, 內容與本string串相同.
這是為了與c語言相容,在c語言中沒有
注意:一定要使用strcpy()函式 等來操作方法c_str()返回的指標
比如:最好不要這樣:
char* c;
string s="1234";
c = s.c_str(); //c最後指向的內容是垃圾,因為s物件被析構,其內容被處理
應該這樣用:
char c[20];
string s="1234";
strcpy(c,s.c_str());
這樣才不會出錯,c_str()返回的是一個臨時指標,不能對其進行操作
再舉個例子
c_str() 以 char* 形式傳回 string 內含字串
如果一個函式要求char*引數,可以使用c_str()方法:
string s = "Hello World!";
printf("%s", s.c_str()); //輸出 "Hello World!"
由於string是C的一個 擴充套件型別,其資料賦值可以用其提供的方法:assign(const char *)或直接用其建構函式
string str( "Now is the time..." );
相關推薦
用printf輸出string型別資料總結
#include <string.h> using namespace std; int main() { string a; a[0]='a'; a[1]='/0'; printf("%s/n",a); system("pause"
C語言中printf用%d輸出float型別資料,或以%f輸出int型資料的結果
1.測試程式及結果 程式#include"stdio.h" int main() { float a = 7.5, b = 1.23, c = 1.24, d = 1.25; double a1 = 7.5, b1 = 1.23, c1 = 1.24, d1 = 1.
C語言printf輸出string型別字串
知識點: 1.printf函式輸出字串是針對char *的,即printf只能輸出c語言的內建資料,而string不是c語言的內建資料。 2.string型別的物件不止包含字串,還包含了許多用於操作函式,所以&str並非字串的首地址。 3.如需輸出string物件中的字串,可以使
c語言格式輸出剖析——用%d輸出float型別資料與int型別%f格式輸出
C語言學習實踐 摘要 本文將從C語言變數的本質,不同型別變數在記憶體中的儲存方式,型別強制轉換,格式輸出4個方面闡述C語言初學階段的一些問題。 關鍵詞:記憶體儲存,型別強制轉換,反彙編 1. 變數 變數來源於數學,是計算機語言中能儲存計算結果或能表示值抽象
printf()函式不能直接輸出string型別
https://www.cnblogs.com/ZERO-/p/7706562.html 因為string不是c語言的內建資料,所以直接printf輸出string型別的是辦不到的。 要這樣輸出: printf("%s\n",a.c_str()); 舉例:
thinkphp 模板格式化輸出datetime型別資料
原理 一,PHP時間戳函式獲取指定日期的unix時間戳 strtotime(”2009-1-22″) 示例如下: echo strtotime(”2009-1-22″) 結果:1232553600 說明:返回2009年1月22日0點0分0秒時間戳 二,PHP時間戳函式獲
ElasticSearch最佳入門實踐(四十四)手動建立和修改mapping以及定製string型別資料是否分詞
1、如何建立索引 如果想設定 string 為分詞 把它設定為 analyzed not_analyzed 則是 設定為 exact value 全匹配 no 則 是不能被索引和匹配 2、修改mapping 注意事項:只能建立index時手動建立mapp
java-模擬存放String型別資料的棧
package com.sc; /** * * 用來模擬一個存放String資料的棧 */ class Node{ private String str; public Node(){} public Node(String str){
redis常見型別資料與操作(除String型別資料)
Hash型別 Hash是一個String型別的field和value之間的對映表,即redis的Hash資料型別的key(hash表名稱)對應的value實際的內部儲存結構為一個HashMap,因此Hash特別適合儲存物件。相對於把一個物件的每個屬性儲存為String型別,將整個物件儲存在Has
redis操作常用命令(String型別資料)
前面已經寫過如何在Ubuntu上部署redis了,https://blog.csdn.net/zc_ad/article/details/84614991 在window中使用redis-cli連線伺服器中的redis-server 1,建立clirun.bat,並在裡面新增一下內容:1
通過okHttp3, 輸入URL ,返回String型別資料
/** * 通過okHttp3 請求網路資料,返回String型別資料 */ public class GetJsonData { private static String TAG = "TESTJSON"; private static String data = "";
redis對String型別資料的處理
package com.xwolf.java.redis; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedi
【C++】:用sort對string型別進行排序
前言 這個問題來自於leetcode上面的一道題 Valid Anagram Given two strings s and t, write a function to determine if t is an anagram of s. For ex
python 輸出JSON型別資料時遇到的編碼問題(utf8,unicode)
開發背景 遇到的問題 參考資料 開發背景 目前已經用scala開發了RESTFUL API來接收傳送來的使用者聊天資料,正在在使用python開發kafka的consumer消費kafka中的資料,每天儲存成一個檔案,然後載入到h
python輸出不換行(同一行輸出不同型別資料)
不同型別的資料輸出在同一行,在行尾加","即可: #! -*- coding:utf-8 -*- #加這一行可以在檔案中使用中文 print 'This is a string + int', pr
java中String型別資料與Date型別資料相互轉換
//實體類 public class Bean { public int id; public String name; public Date date; public int getId() { return id; } public void se
ORCALE資料庫Date型別資料用String型別接收收出現.0情況也就是顯示毫秒數
如: { "createdate": "2018-11-28 14:53:24.0", } 但是資料庫中查詢結果並沒有毫秒數 解決方案 public void setCreat
C++中關於string型別究竟能不能用cout輸出的問題
一次在MFC中用cout輸出一個string型別字串,編譯時出現這樣一個錯誤: error C2679: binary '<<' : no operator defined which takes a right-hand operand of type '
//用scanf和printf輸入輸出string//map的應用//Babelfish------三C
You have just moved from Waterloo to a big city. The people here speak an incomprehensible dialect of a foreign language. Fortun
printf輸出%f %lld問題。輸出型別和資料型別不匹配會發生什麼?
——總結自《C PRIMER PLUS》 直接看三個例子: int a=4; printf("%f %e\n",a,a); float b=4; printf("%f %e\n",b,b); int n1=-1,n2=-2,n3=-3; printf("