這裏我給輸入字符串這樣"/org/bluez/1509/hci0"
獲取分段錯誤
,我想這樣的/org/bluez/1509/hci0
輸出在這裏,我用這個方法,但我得到了分段故障。這樣
length 22
String 1 = /org/bluez/1509/hci0"
Segmentation fault
問題的最後「字
void main()
{
char *str = "\"/org/bluez/1509/hci0\"";
int len = strlen(str);
printf("\nlength %d\n",len);
char *str1;
str1 = str+1;
printf("String 1 = %s\n",str1);
*(str1+ (strlen(str)-2)) = '\0';
printf("\nString 1 = %s\n",str1);
}
我得到的輸出。
任何機構可以幫我或給我建議新的方式?
字符串文字不可修改。嘗試將其複製到數組中:'char str [] =「\」/ org/bluez/1509/hci0 \「」;'。 'main'也返回一個整數;如果你想要C89兼容性(也需要在任何代碼語句之前聲明所有變量),那麼改變'void',並添加一個'return 0;'。 – pmg
我建議改變'*(str1 +(strlen(str)-2))='\ 0';'str1 [strlen(str1) - 1] ='\ 0';' – Lundin