一波C語(yǔ)言字符數(shù)組實(shí)用技巧集錦
字符數(shù)組倒序
#include <stdio.h>
void daoxu(char str[]){
int i;
char temp;
for(i = 0; i < strlen(str) / 2 ; i ++){
temp = str[i];
str[i] = str[strlen(str) - i-1];
str[strlen(str) - i-1] = temp;
}
}
單詞計(jì)數(shù)
int wordCount(char str[]){
int i;
int count = 0;
int word = 0;
for (i = 0 ; str[i] != '\0' ; i ++)
{
if (str[i] == ' ')
{
word = 0;
}else if (word == 0)
{
word = 1;
count ++;
}
}
return count;
}
字符大寫(xiě)轉(zhuǎn)小寫(xiě)
void mylwr(char str[]){
int i;
for (i = 0 ; str[i] != '\0' ; i ++)
{
if (str[i] >= 'A' && str[i] <= 'Z')
{
str[i] += 'a' - 'A';
}
}
}
字符小寫(xiě)轉(zhuǎn)大寫(xiě)
void myupr(char str[]){
int i;
for (i = 0 ; str[i] != '\0' ; i ++)
{
if (str[i] >= 'a' && str[i] <= 'z')
{
str[i] -= 'a' - 'A';
}
}
}
字符數(shù)組計(jì)算字符串長(zhǎng)度
int mylen(char str[]){
int len;
for (len = 0 ; str[len] != '\0' ; len ++);
return len;
}
字符串連接
void mycat(char str1[],char str2[]){
int i,j;
for (i = 0 ; str1[i] != '\0' ;i++);
for (j = 0 ; str2[j] != '\0' ; j ++)
{
str1[i + j] = str2[j];
}
str1[i + j] = '\0';
}
指定長(zhǎng)度串接
void myncat(char str1[],char str2[], int len){
int i,j;
for(i = 0; str1[i] != '\0'; i++);
for (j = 0; j < len; j++)
{
str1[i + j] = str2[j];
}
str1[i + j] = '\0';
}
字符數(shù)組拷貝
void mycpy(char dst[],char src[]){
int i = 0;
do
{
dst[i] = src[i];
} while (src[i++] != '\0');
}
字符數(shù)組指定長(zhǎng)度拷貝
void myncpy(char dst[],char src[], int len){
int i;
for (i = 0; i < len; i++)
{
dst[i] = src[i];
}
dst[i] = '\0';
}
找出句子中最長(zhǎng)的單詞
void longest(char dst[],char src[]){
int i = 0,j;
int count =0;
int max = -1;
do
{
if (src[i] ==' ' || src[i] == '\0')
{
if (count > max)
{
max = count;
for (j = 0; j < count; j++)
{
dst[j] = src[i - count + j];
}
dst[j] = '\0';
}
count = 0;
}else{
count++;
}
} while (src[i++] != '\0');
}
從字符串中提取整形數(shù)字
#include <stdio.h>
int getint(char str[], int a[]){//從字符串中提取數(shù)字并放在數(shù)組中
int i = 0;
int w = 0;
int c = 0;
int j, k;
do
{
if (str[i] > '0' && str[i] <= '9')
{
w++;
}else if (w)
{
j = 0;
for (k = w; k > 0; k--)
{
j *= 10;
j += str[i - k] - '0';
}
w = 0;
a[c] = j;
c++;
}
} while (str[i++] != '\0');
return c;
}
void main(){
char str[100];
int a[100];
int i, j;
gets(str);
i = getint(str,a);
for (j = 0; j < i; j++)
{
printf("%d ",a[j]);
}
}
整形、字符數(shù)組型轉(zhuǎn)換
#include <stdio.h>
#include <stdlib.h>
int sumof1(int x)//求一個(gè)數(shù)轉(zhuǎn)換成二進(jìn)制以后1的個(gè)數(shù)
{
int countx = 0;
while(x)
{
countx ++;
x &= x-1; //每位與一次x - 1;就能消掉最后一個(gè)1
}
return countx;
}
void main(){
char c[10];
int i = 999;
itoa(i, c, 10);//以10進(jìn)制轉(zhuǎn)換成字符數(shù)組
puts(c);
itoa(i, c, 16);//以16進(jìn)制轉(zhuǎn)換成字符數(shù)組
printf("0x%s\n", c);
itoa(i, c, 8);//以8進(jìn)制轉(zhuǎn)換成字符數(shù)組
printf("0%s\n", c);
itoa(i, c, 2);//以2進(jìn)制轉(zhuǎn)換成字符數(shù)組
puts(c);
i = atoi(c);//再將字符串轉(zhuǎn)成整形
printf("%d\n", i);
printf("%d\n", sumof1(i));//以2進(jìn)制表示時(shí)1的個(gè)數(shù)
}

- C語(yǔ)言字符串函數(shù)模擬實(shí)現(xiàn)流程介紹
- C語(yǔ)言字符串函數(shù),字符函數(shù),內(nèi)存函數(shù)使用及模擬實(shí)現(xiàn)
- C語(yǔ)言中關(guān)于計(jì)算字符串長(zhǎng)度的幾種方式
- C語(yǔ)言中的字符串?dāng)?shù)據(jù)在C中的存儲(chǔ)方式
- C語(yǔ)言超全面講解字符串函數(shù)
- 淺析C語(yǔ)言中的數(shù)組及字符數(shù)組
- C語(yǔ)言之從字符數(shù)組中刪除特定的字符
- c語(yǔ)言字符數(shù)組與字符串的使用詳解
- C語(yǔ)言字符串與字符數(shù)組面試題中最易錯(cuò)考點(diǎn)詳解
相關(guān)文章
C語(yǔ)言使用鏈表實(shí)現(xiàn)學(xué)生籍貫管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言使用鏈表實(shí)現(xiàn)學(xué)生籍貫管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
windows上配置vscode?C/C++代碼跳轉(zhuǎn)的實(shí)現(xiàn)
C/C++官方的C/C++插件,必備的插件,是代碼跳轉(zhuǎn)、自動(dòng)補(bǔ)全、代碼大綱顯示等功能的基礎(chǔ),本文主要介紹了windows上配置vscode?C/C++代碼跳轉(zhuǎn),感興趣的可以了解一下2023-09-09
C語(yǔ)言 動(dòng)態(tài)分配數(shù)組案例詳解
這篇文章主要介紹了C語(yǔ)言 動(dòng)態(tài)分配數(shù)組案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
基于Matlab實(shí)現(xiàn)抖音小游戲蘋(píng)果蛇
最近抖音上蘋(píng)果蛇小游戲大火,為了證明MATLAB無(wú)所不能,咋能不跟風(fēng)做一個(gè)?文中詳細(xì)講解了游戲的實(shí)現(xiàn)步驟,感興趣的小伙伴可以嘗試一下2022-06-06
C++利用inotify+epoll實(shí)現(xiàn)異步文件監(jiān)控的方法
這篇文章講給大家詳細(xì)介紹一下C++利用inotify+epoll實(shí)現(xiàn)異步文件監(jiān)控的方法,inotify是一種異步文件監(jiān)控機(jī)制,文章通過(guò)代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2023-08-08
Qt如何實(shí)現(xiàn)輸入框@聯(lián)系人的@檢測(cè)的示例
本文主要介紹了Qt如何實(shí)現(xiàn)輸入框@聯(lián)系人的@檢測(cè)的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
C++實(shí)現(xiàn)LeetCode(152.求最大子數(shù)組乘積)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(152.求最大子數(shù)組乘積),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07

