标签:std puts microsoft 空格 == main string+ NPU rev
1. 句子反转
1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 5 void reverse_word(char *string, int len); 6 void reverse_sentense( char *string); 7 8 int main(int argc, char* argv[]) 9 { 10 char str[1000]; 11 printf("please input reverse string:\n"); 12 gets(str); 13 //scanf("%s",str); 14 printf("before = %s\n",str); 15 reverse_sentense(str); 16 printf("after = %s\n",str); 17 return 0; 18 } 19 20 void reverse_sentense( char *string) 21 { 22 int temp = 0; 23 int j; 24 int i = strlen(string); 25 if((string==NULL)||(i>1000)) 26 printf("input sentense string not valid\n"); 27 for(j=0;j<i+1;j++) 28 { 29 if((*(string+j)==0x20)||(*(string+j)==0x0)) 30 { 31 //printf("find pos j = %d, temp=%d\n",j,temp); 32 reverse_word((char*)string+temp, j-temp); 33 temp=j+1; 34 } 35 36 } 37 reverse_word(string,strlen(string)); 38 39 } 40 41 void reverse_word(char *string, int len) 42 { 43 char temp; 44 int j; 45 if((string==NULL)||(len>1000)) 46 printf("input word string not valid\n"); 47 for(j=0;j<len/2;j++) 48 { 49 temp = *(string+j); 50 *(string+j) = *(string+len-1-j); 51 *(string+len-1-j) = temp; 52 } 53 return; 54 }
1. 编译存在警告:warning: ‘gets‘ is deprecated (declared at /usr/include/stdio.h:638) [-Wdeprecated-declarations] 。gets在新版的编译器中一般认为是危险的,因为有可能导致越界访问,可以忽略这样的警告。
如果使用scanf接收字符串的话,在串首遇到空格的话,跳过,继续寻找下一个非空格字符,在串中遇到空格时,会结束字符串的输入,因此实现比较困难。
标签:std puts microsoft 空格 == main string+ NPU rev
原文地址:https://www.cnblogs.com/DF11G/p/10112404.html