ここで私はこの方法を使用するが、私はセグメンテーションフォールトを得た私は、この"/org/bluez/1509/hci0"
文字列操作でセグメンテーションフォールトを取得
のように入力文字列を与えると私はこの/org/bluez/1509/hci0
のような出力をしたいです。
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);
}
私は最終」の文字と、この
length 22
String 1 = /org/bluez/1509/hci0"
Segmentation fault
問題のように出力を取得しています。
どれ体が私を助けたり、私に新しい道を提案することができます。?
文字列リテラルは変更できません。それを配列にコピーしてみてください: 'char str [] =" \ "/ org/bluez/1509/hci0 \" "。また、 'main'は整数を返します。 'void'を変更し、C89互換性が必要な場合は 'return 0;'を追加します(コードステートメントの前にすべての変数も宣言する必要があります)。 – pmg
str1 [strlen(str1) - 1] = '\ 0'; ' – Lundin