我有一個簡單的問題:vb.net如何確定字符串長度並處理字符串的終止?
我知道在C
(及其家族)空字符是字符串的結尾。在vb6中,null字符對字符串的終止沒有影響,但在vb.net中它似乎有霧!
在VB6假定這段代碼:vb.net中嵌入null的字符串長度
Private Sub Command1_Click()
Dim Str As String
Str = "Death is a good user," & Chr(0) & " Yes I'm good"
RichTextBox1.Text = Str
RichTextBox1.Text = RichTextBox1.Text & vbNewLine & Len(Str)
End Sub
這種運行此代碼時會發生什麼:
而且這是正常的。這是C
類似的代碼:
#include "stdafx.h"
#include <string.h>
int main(int argc, char* argv[])
{
char *p="Death is a good user,\0 Yes I'm good";
printf("String:%s\nString length:%d\n",p,strlen(p));
return 0;
}
這是發生了什麼:
這很好得根據C
規則,但這裏是在vb.net相同的代碼:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim str As String = "Death is a good user," & Chr(0) & " Yes I'm good"
RichTextBox1.Text = str
RichTextBox1.Text &= vbNewLine & str.Length
End Sub
發生了什麼:
這似乎並不正確!
編輯1:寫入文件似乎是正確的:
編輯2:Mark和tcarvin暗示,它可能是UI的問題,但它並不能解釋爲什麼VB6節目整串!
編輯3:我知道Windows和它的API,UI,......都寫在C
,所以這將是正常的,他們喜歡C
反應,但正如我上面顯示,他們不這樣做。
如果將字符串寫入文件會發生什麼? –
相關:http://stackoverflow.com/questions/178751/getting-the-whole-output-of-a-string-that-contains-chr0 –
@JoelCoehoorn查看編輯! – undone