null-character

    1熱度

    2回答

    我將其中包含空格的字符串作爲輸入,並用NULL字符'\ 0'替換空格。當我現在打印字符串時,我只希望直到第一個空字符的部分,這是第一個空格,但是我得到的是原始字符串。 這裏是代碼 - #include<stdio.h> int main(){ char a[1000]; int length, i = 0; length = 0; scanf("%[^\

    33熱度

    1回答

    我想遍歷文件列表而不關心文件名可能包含的字符,因此我使用由空字符分隔的列表。代碼將更好地解釋事情。 # Set IFS to the null character to hopefully change the for..in # delimiter from the space character (sadly does not appear to work). IFS=$'\0' #

    1熱度

    1回答

    我想重現緩衝區溢出。我試圖傳入的地址有兩個空的十六進制字符(即0x00547e00)。它之後還有4個字節(即0x11111111和0x22222222)。如果我使用gdb傳遞它們,則在寫入我想要的內存時跳過空字符(即1111547e 22221111 2222 ####)。有沒有一個我可以傳入的字符不是空字符,但不影響我的地址? 我想到的一個解決方案是找到一些已經被清零的內存,然後用第一個地址指向

    2熱度

    4回答

    我有兩個關於char數組的問題。 從代碼波紋管,因爲arr是const,爲什麼不編譯器給我一個錯誤,因爲我重寫呢? char arr[5]; // arr is a const pointer to (*)[5] array cin>>arr; // 當我初始化字符數組是這樣的: char arr[5]={'h','i'}; ,如果我這樣做: cout << arr << "someth

    0熱度

    2回答

    從Rules for C++ string literals escape character,禮的回答 std::string ("0\0" "0", 3) // String concatenation 作品,因爲這個版本的構造函數需要一個字符數組;如果你試圖將「0 \ 0」「0」作爲一個常量字符*,它會將它視爲一個C字符串,並且只會複製所有內容直到出現空字符。 這是否意味着空間沒有分配給

    0熱度

    1回答

    我使用空字符(\0)作爲分隔符來保留在sprintf之後的空白字符串。但具有空字符的字符串在此功能下不起作用(在這種情況下)。 是否有一些合適的字符替代\0用於此目的? #!/usr/bin/env perl use warnings; use 5.12.0; sub routine { my @list = @_; @list = map{ "\0".$_."\0"

    0熱度

    5回答

    在這裏,在這個示例程序來說明strcpy()這種行爲,我寫了一個字符串"S"成一個更大的字符串previous其原來有"Delaware"。但這僅覆蓋影響原始字符串的原始string.The休息前兩個字符繼續具有相同的值。如何處理這個問題? (即使memcpy()似乎也可能具有相同的行爲)。我的意思是,如何將其餘字符轉換爲0?或者字符串中保留其原始值的其餘字符沒有副作用? #include<std

    3熱度

    2回答

    我有一個類項目在C++中創建一個web服務器。一切都很順利,直到我到了需要託管圖像或pdf的地步,此時文件已損壞。做更多的挖掘,我意識到所有損壞的圖像在結束之前都有空字符。 這使我想到我的問題。我有一個char *,我已經讀過這些文件,並且我知道文件的長度。我非常肯定整個文件正在讀入(下面的代碼),但我不知道如何打印出來或發送它。我如何告訴C++我想發送char *之後的第一個X字符? (我敢肯定

    0熱度

    2回答

    在PowerShell中我運行一些命令行腳本,並要使之轉儲: PS> cmd /c D:\script.bat | tee ~/out.log 然後,我打開此日誌在vim,這大約是我所看到的: яю^M^@ ^@C^@:^@\^@U^@s^@e^@r^@s^@>^@s^@e^@t^@ ^@D^@E^@B^@U^@G^@_^@F^@U^@L^@F^@I^@L^@L^@M^@E^@N^@T^@=

    26熱度

    4回答

    使用(char)0和表示字符數組中的終止空字符有什麼區別?