A. c語言中的字元串
C語言的字元串是一片連續的空間,用'\0'表示字元串的結尾。如果從一個字元指針作為字元串的起始進行訪問,當遇到'\0'之前的整段空間的值都會被當做字元串的內容。LZ的程序中只復制的字元串長度等於串長的部分,沒有復制'\0'造成訪問越界。在VC++中用Debug模式運行程序,自帶的Microsoft C&C++ Debugger會把未初始化的棧空間的每個位元組填充為0xCC以便查錯,而訪問到這段空間把連續的0xCCCC當做字元串了,按GBK編碼顯示為漢字「燙」。
可以改成這樣:
#include <stdio.h>
#include<string.h>
int main()
{ char a[80],b[80];
int i,t;
scanf("%s",a);
t=strlen(a);
for(i=0;i<t;i++)
b[i]=a[i];
b[i]='\0';
printf("%s\n",b);
}
====
[原創回答團]
B. C語言 字元串命令 集錦
樓上的寫的我都看不懂,不過我可以推薦給你一些:
gets(char *str)
從流中獲取字元串
putchar(ch[i])
列印一個字元
strlen(char *str)
判斷字元串的長度
char *strcpy(char *destination, const char *source)
拷貝串
char *strcat(char target, const char *source)
將一個串的內容追加到另一個串上
char *strncat(char *destination,const *source,size_t n);
將字元穿追家n個字元。
size_t strxfrm(char *target,char *source,size_t n)
把一個字元穿轉移到另一個字元穿
int streql(char *str1, char *str2)
比較兩個字元穿是否相同
int strieql(char *str1, char *str2)
不區分大小寫比較兩個字元串是否相同
char *strlwr(char *str)
char *strupr(char *str)
將字元穿轉換為大寫或小寫
int strcmp(const char *str1,const *char str2)
比較兩個字元串
我只能寫到這里了,手都酸了,要加分哦,呵呵
我有這方面的電子書,要的話,就加我QQ(474724984)吧
我傳給你。
C. c語言 輸入一個字元串,輸出菱形樣式圖案,每行包含各子串。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int n,i;
char s[100];
scanf("%s",s);
n=strlen(s);
for(i=0;i<n;++i)
s[n+i]=s[n-i-1];
s[n+i]='