我是C編程的新手。 我有這個問題,我不明白。看起來windows下的字符串是以完全不同的方式處理的,爲什麼呢?字符串處理C linux和windows
吳丹是我的代碼
#include <stdio.h>
#include <string.h> // compare strings
void addextname(char *str1, char *str2, char *nome1){
int i,j;
i = 0;
while (str1[i]!='.') {
nome1[i] = str1[i];
i++;
}
j = 0;
while (str2[j]!='\0') {
nome1[i] = str2[j];
i++;
j++;
}
}
int main()
{
char str1[9]="file.stl";
char str2[9]="name.stl";
int len1 = strlen(str1);
int len2 = strlen(str2);
char nome1[len1+len2+1];
addextname(str1,str2,nome1);
printf("%s %s %s\n",str1,str2,nome1);
return 0;
}
我的目的是要讀它的擴展名(.STL)中輸入文件名和一些字符添加到它保持該擴展。在Linux下,我沒有問題,在Windows下,輸出文件名被保存不正確。 我的編譯行是
gcc modstr.c -std=c99 -o strings
我真的很感激一個問題的答案!
@橋你編輯過哪一行,因爲代碼看起來像前一個 – Nicholas 2012-01-17 09:29:23
括號中的縮進問題,它將代碼塊分成兩個單獨的代碼塊。只是爲了更好的格式:) – qiao 2012-01-17 09:32:43
@喬耶!我認爲這是我的代碼上的東西,但我後來發現答案是: – Nicholas 2012-01-17 09:54:24