C#中字串中含有\0的問題處理
問題描述
在byte轉換為字串的過程中,如果byte的值為0,則轉換成字串時變為’\0’字元,’\0’字元在C#中意味著字串結束,如果後面再有字元,則讀取字串的程式也不能讀取和顯示出來。
如下圖所示,構造一個位元組陣列,其中含有’\0’字元,在程式執行時通過跟蹤可以看出:
(1) 字串中含有’\0’字元及後續字元;
(2) 二進位制陣列中含有所有字元,並且’\0’字元的值為0;
(3) 在程式中查詢字串的值時只能顯示’\0’字元前的字元。
同時在程式中測試的結果,也是隻能顯示’\0’字元前的字元。後面的字元被自動截斷。下圖所示。
程式中窗體測試結果。
通過前面的分析可以看出’\0’字元,其實就是ASCII中的0,下圖為查詢到的標準ASCII碼。
處理措施,
針對程式中出現\0字元後後續字元不能顯示的問題,可以把\0變為相應的字元別的字元,如*等加以解決,程式碼如下:
string.Replace('\0','*')
相關推薦
C#中字串中含有\0的問題處理
問題描述 在byte轉換為字串的過程中,如果byte的值為0,則轉換成字串時變為’\0’字元,’\0’字元在C#中意味著字串結束,如果後面再有字元,則讀取字串的程式也不能讀取和顯示出來。 如下圖所示,構造一個位元組陣列,其中含有’\0’字元,在程式執行時通過跟蹤可以看出:
C語言中字串結束符'\0'
轉自:http://www.cnblogs.com/kaituorensheng/archive/2013/12/09/3464462.html 本質 '\0'就是8位的00000000,因為字元型別中並沒有對應的這個字元,所以這麼寫。'\0'就是 字串結束標誌。
C++查詢字串中同樣的字元,並將其刪除不改變字串的順序。
輸入一個字串,找到相同的字元,將後面出現的字元刪除,不改變字串的順序。 例如: Hello -》Helo 人山人海 -》人山海 程式碼實現: #include <iostream> #include<string>
javasc中字串(String)物件及處理字串的方法
字串的屬性 length 的介紹: 在JavaScript 中,對於字串來說,要掌握的屬性就只有一個,那就是 length 屬性.我們可以通過 length屬性來獲取字串的長度. 語法:字串名稱.length 說明:length 屬性很簡單,但是在字串操作中經常要用到,這個大家一定
C語言字串中根據特定字元(串)分割
C語言字串操作函式有很多,這裡舉出需要用到的,其他請自行查詢。 1、len = strlen(p) ;//取字串長度 原型:size_t strlen(const char *s); 功能:統計字串string中字元的個數,字串的長度在 size_t 返回值中。
C++讀取字串中的數字的方法
程式碼例項: #include <iostream> #include <sstream> #include <fstream> using namespace std; int main() { string str("55.58180
Swift中字串中含有emoji表情時長度計算不準確的問題
最近工作中有一個顯示檔案路徑資訊需要標藍顯示,但是在路徑資訊中含有emoji時,發現部分路徑沒有標藍,效果如下:因為Swift的String沒有length方法,所以獲取字串長度是用count,然而OC的NSString用的則是.length獲取長度,在有emoji的情況下,
python中字串中替換處理和轉義
---python 2.7 字串替換函式一般用repalce 1.例項:str ='aaa--bbb' 要替換其中的--- new_str = str.replace('--','') 2. 例項:str1= "aaa/Gbb" 要替換其中的/(斜槓) p
c#刪除字串中指定字元
string str= System.Text.RegularExpressions.Regex.Replace(字串, "[指定的字元]", ""); 如刪除一個字串text中所有的\t\r\n: string result = System.Text.RegularEx
C++去除字串中多餘的空格
今天寫了個小程式設計,去除字串中多餘的空格,例如"I___am_____a______student."(下劃線表示空格哈,打多個空格顯示的還是一個),最後輸出”I am a student.” 現在把自己的思路貼上,歡迎大家留言指正。 思路就是定義兩個指標
C#去除字串中的中文、字母、數字
C#去除字串中的中文 使用正則表示式 1. /// /// 去除字串中的中文 /// /// /// public static string Delete
C語言字串中使用巨集替換
1 背景 在定義一個字串時,希望有一部分內容可以使用巨集替換。當嘗試使用如下方式來實現時,發現並不能達到目的。#define XXX programmer char str[] = “I li
c# 字串拆分 ;c# 中字串中的分號用逗號替換;SQL Server 字串中的分號用逗號替換
1、string[] ids = extData.Split(new char[] { ';' });2、extData.Replace(";", "','"); string.Format(strSQL, extData.Replace(";", "','"))3、1 se
python中字串(str)的常用處理方法
生成字串變數str='python String function' 字串長度獲取:len(str) 例:print '%s length=%d' % (str,len(str))一、字母處理全部大寫:str.upper() 全部小寫:str.lower() 大小寫互換:str.swapcase() 首字母大
C++ 獲取字串中的中文、英文、數字等
在 C++ 程式設計中經常處理 Unicode 編碼的字串,Unicode 通常用兩個位元組表示一個字元,原有的英文編碼從單位元組變成雙位元組,只需要把高位元組全部填為 0 就可以。每一個字元在 Unicode 編碼表中對應為一個編號。例如:B 對應 0042在 Unicod
c++ 實現字串中替換字串,也可去掉字串中特定字串
int string_replase(string &s1, const string &s2, const string &s3) { string::size_type pos = 0; string::size_type a = s2.si
c++ 去除字串中的空格和標點符號 (remove_if 函式的用法)
C++中提供了自動刪除空格和標點符號的函式,使用如下: #include <ctype.h> #include <algorithm> str_testing.erase(
C#去除字串中的不可見內容
字串中如果有 you make me smile ᶤ ᶫᵒᵛᵉᵧₒᵤ♥/" 這類不可見的字元 如何處理? 一句正則搞定 string s=you make me smile ᶤ ᶫᵒᵛᵉᵧₒᵤ♥/"; s = Regex.Replace(s, @"[^/x21-
C/C++消除字串中的無效字元,用於載入配置
字元陣列是一個數組,每個元素的值都可以改變。而字串指標指向的是一個常量字串,它被存放在程式的靜態資料區,一旦定義就不能改變。這是最重要的區別。 #include<stdio.h> #include<string.h> #includ
C# 刪除字串中任何位置的空格
另一版本如下: string text = " My test/nstring/r/n is/t quite long " ; string trim = text.Trim(); 這個'trim' 字串將會是: "M