卡在空指针和空字符串检查中

时间:2018-12-17 10:37:28

标签: c string nullpointerexception null null-pointer

我不熟悉C和编程。我试图制作一个大写程序,但是我应该做空指针检查和空字符串检查。我该如何继续?我只想了解这一点。

add_filter( 'woocommerce_currencies', 'finland_euro' );
function finland_euro( $currencies ) {
     $currencies['FI-EUR'] = __( 'Finland Euro', 'woocommerce' );
     return $currencies;
}

add_filter('woocommerce_currency_symbol', 'add_my_currency_symbol', 10, 2);
function add_my_currency_symbol( $currency_symbol, $currency ) {
     switch( $currency ) {
          case 'FI-EUR': $currency_symbol = '€'; break;
     }
     return $currency_symbol;
}

1 个答案:

答案 0 :(得分:1)

首先,让我告诉您,如果不需要格式转换(使用转换说明符),请使用puts()而不是printf()

也就是说,您需要检查toUpper()函数的两件事:

  1. 在访问之前,您需要检查传入的参数是否为空指针。您可以对照NULL检查传入的指针,例如

    int *toUpper(char *str){
        if (str) {             //makes sure `str` is not a NULL pointer
          // do operation
         }
          // else 
         return NULL;      //indicate error condition
     }
    
  2. 您需要检查提供的字符串是否为空。为此,您可以使用以下方法检查第一个元素是否为NUL

    int *toUpper(char *str){
        if (str) {
           if (str[0] != '\0')     // check the first element
          // do operation
         }
          // else 
         return NULL;      //indicate error condition
     }