1. c語言里如何把已有的字元串寫入文件里
int main()
{
FILE *fp;
fp = fopen("aa.txt", "w");
if(fp ==NULL)
printf("打開文件aa.txt失敗\n");
fprintf(fp, "Hello Workd!");
return 0;
}
aa.txt 是在你當前文件夾中的,就是和程序就同一個目錄下,你也帶路徑 c:/my/aa.txt
2. c語言字元串提取與合成問題
按要求,將原字元串拆分成兩個字元串分別單獨保存。
思路:
一、兩個指針分別指向數組第一項和第二項,對應偶數項和奇數項,之後指針同時循環+2取值保存在對應數組。
二、拼接字元串直接使用字元串函數strcat。(不想使用庫函數,也可循環賦值)。
#include <stdio.h>
#include <string.h>
#define M 20 //數組最大長度
int splitStr(char str[],char oStr[],char eStr[]);//拆分str到oStr和eStr
int main()
{
char str[M+1],oStr[M+1],eStr[M+1];//str為原字元串,oStr為奇數字元串,eStr為偶數字元串
printf("請輸入一個字元串(最大%d個字元):",M);
scanf("%s",str);
splitStr(str,oStr,eStr);
printf("其中奇數項組成的字元串為:%s ",oStr);
printf("其中偶數項組成的字元串為:%s ",eStr);
strcat(eStr,oStr);//將偶數組和奇數組組合後放在偶數組中
printf("將偶數組和奇數組組合後新數組為%s ",eStr);
return 0;
}
int splitStr(char str[],char oStr[],char eStr[])
{
int i=0,j=0;
char *op=str+1,*ep=str;//op指向奇數項,ep指向偶數項,循環+2取值
while(1)
{
if(*ep==0) break;
if(*ep) eStr[i++]=*ep;
if(*ep && *op) oStr[j++]=*op;
if(*op==0) break;
ep+=2,op+=2;
}
eStr[i]=0,oStr[j]=0;
return 1;
}
3. C語言怎麼用函數把一個字元串逆序存放,比如說原字元串是abcd,怎麼將他改為dcba
我以前寫了這個程序。略粗糙
源代碼:
#include <stdio.h>
#include <string.h>
#define ARR_SIZE 80 //字元串最大長度
int Inverse(char a[]);
void main(void)
{
char str[ARR_SIZE]={0};
printf("P199 6.12\n"); //題號
printf("---------------------Inversed sequence---------------------\n");
printf("\nPlease enter a charstring:\n\n");
gets(str); //輸入一個字元串
Inverse(str); //調用函數逆序存放
}
int Inverse(char a[])
{
char b[ARR_SIZE]={0};
int i;
int maxsize;
maxsize=strlen(a)-1; //得到最後一個字元位置
for (i=0;i<strlen(a);i++) //依次交換存放
{
b[maxsize]=a[i];
maxsize--;
}
printf("\nThe changed result is:\n\n");
puts(b); //輸出交換存放結果
printf("\n");
}
4. C語言中有string嗎
C語言中沒有string類型。
string類型是 C++、java、VB等編程語言中的。 在java、C#中,String類是不可變的,對String類的任何改變,都是返回一個新的String類對象。string 是C++標准程序庫中的一個頭文件,定義了C++標准中的字元串的基本模板類std::basic_string及相關的模板類實例。
而在C語言中,C語言中沒有字元串類型,字元串是存放在字元型數組中的,將字元串作為字元數組來處理的。為了測定字元串的實際長度,C語言規定了一個「字元串結束標志」,以字元'